Django get_models with models/__ init.py__

Sha*_*ane 8 python django

我在django中使用get_model和get_models时遇到问题

我在模特下有几个型号/

 models/blog.py
 models/tags.py
 models/users.py
 models/comments.py
 models/category.py
Run Code Online (Sandbox Code Playgroud)

还有一个 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 *
Run Code Online (Sandbox Code Playgroud)

但是在我的views.py中,我有一些代码可以使用get_model

from django.db.models.loading import get_model
blog_class = get_model('myapp', 'blog') #Returns none
Run Code Online (Sandbox Code Playgroud)

当我尝试get_models('myapp')它时返回一个空列表.

我也试过了

print(get_app('myapp'))
Run Code Online (Sandbox Code Playgroud)

哪个回报:

<module 'myapp.models' from '/var/www/myapp/models/__init__.pyc'> 
Run Code Online (Sandbox Code Playgroud)

如果我试图迭代它

for model in get_models(get_app('myapp')):
    print(model)
Run Code Online (Sandbox Code Playgroud)

它什么都不做.我有什么遗漏或没有发现?

Ala*_*air 11

由于您尚未在应用程序中定义模型,因此models.py必须app_label为每个模型明确设置选项.

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

    class Meta:
        app_label = 'myapp'
Run Code Online (Sandbox Code Playgroud)