我在 django 中使用 get_model 和 get_models 时遇到问题
我在models下有几个模型/
models/blog.py
models/tags.py
models/users.py
models/comments.py
models/category.py
还有一个models/__init.py__
from myapp.models.blog import *
from myapp.models.tags import *
from myapp.models.users import *
from myapp.models.comments import *
from myapp.models.category import *
但是在我的 views.py 中有一些代码可以使用 get_model
from django.db.models.loading import get_model
blog_class = get_model('myapp', 'blog') #Returns none
当我尝试 get_models('myapp')
时,它返回一个空列表。
我也试过
print(get_app('myapp'))
哪个返回:
<module 'myapp.models' from '/var/www/myapp/models/__init__.pyc'>
如果我尝试遍历它
for model in get_models(get_app('myapp')):
print(model)
它什么都不做。有什么我遗漏或没有发现的吗?
最佳答案
因为您还没有在应用程序的 models.py
中定义您的模型,所以您必须显式设置 app_label
每个模型的选项。
class Blog(models.Model):
title = models.CharField(max_length=30)
...
class Meta:
app_label = 'myapp'
关于python - Django get_models 与模型/__init.py__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11739011/