- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 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/
根据创建 django 迁移时的 django 文档,我们应该使用 apps.get_model() 而不是导入模型并使用它们。 为什么数据迁移必须使用模型的历史版本而不是最新版本?(模型的历史版本无
我有多个 ModelForm 类,每个类代表一个不同的模型。我想要一个通用的“创建”函数,它根据 URL 参数加载指定的模型表单。可以通过以下方式动态加载模型: model_name = 'TestM
在Z3的C++ API中,我可以通过以下方式搜索模型 model m = s.get_model(); 然后: cout << m.eval(A); 将为我提供 A 的值。 然而,m.eval(A)
File "C:\Python27\Lib\site-packages\file_picker\forms.py,line 5 in from django.db.models import Q,g
使用类似的东西有什么缺点吗 from django.db.models.loading import get_model def get_something(): model = get_mo
我有以下迁移(为简单起见,删除了逻辑): def migrate_existing_discounts(apps, _): ModelA = apps.get_model('myapp', '
我在 django 中使用 get_model 和 get_models 时遇到问题 我在models下有几个模型/ models/blog.py models/tags.py models/u
django.db.models.get_apps()返回包含模型的所有已安装模块的列表,无论它们是具体的还是抽象的: [, , ] 但由于某种原因,django.db.models.get_mo
我正在编写自定义 Django 迁移脚本。根据 django docs on custom migrations ,我应该可以使用我的模型对比 apps.get_model() .但是,在尝试执行此操
我在使用 Django 的 get_model 时遇到问题。 get_model 适用于我尝试获取的每个模型,除了来自 Mezzanine 的 BlogPost 模型。 我已经尝试过: model =
我想在 HTML 页面中显示应用程序列表以及这些应用程序的型号。 在 view.py 中,我用以下内容更新我的 View 上下文: from django.apps import apps conte
所以我有这个 TreeView/TreeStore,我用列表中的数据填充它。我的应用程序仅使用上述列表作为引用数据。 TreeStore 只是为显示而构造的。并且可以通过倾斜列标题来使用 TreeVi
关于 Django 的循环导入,我是否可以用 myModel = apps.get_model('app_name', 'model_name') 在 models.py 文件中获取模型对象? 我知道
我想使用 get_model() 来避免在我的模型中循环导入,但是我得到了 name 'get_model' is not defined 错误。我读到 get_model() 在 1.8 中已贬值,
我是一名优秀的程序员,十分优秀!