8

我在 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)

它什么也不做。有什么我遗漏或没有发现的吗?

4

1 回答 1

11

因为您尚未在应用程序的 中定义模型,所以您必须为每个模型models.py显式设置选项。app_label

class Blog(models.Model):
    title = models.CharField(max_length=30)
    ...

    class Meta:
        app_label = 'myapp'
于 2012-07-31T11:30:11.393 回答