【问题标题】:How to convert string to call model's name in Django?如何在 Django 中将字符串转换为调用模型的名称?
【发布时间】:2019-03-31 07:30:33
【问题描述】:

view.py

from .models import Banana, Mango
list = request.GET['fruit[]']
for x in list:
    conn = x.objects.all()
    print(conn.name)

在 html 文件中: 我使用复选框选择“芒果”和“香蕉”,view.py 获取复选框的值。然后我要选择用户选择的模型。

当我运行这段代码时,它会出现 /search 处的 AttributeError “str”对象没有属性“objects”。

在代码中,我想在我的 models.py 中返回对象模型的名称值

如何替换 List 中的字符串以在 django 中调用对象模型?

【问题讨论】:

标签: python django django-models django-views


【解决方案1】:

如果您必须从 str 值加载模型,请使用 django.apps.get_model() 助手

from django.apps import apps

Model = apps.get_model('app_name', 'model_name')
for element in Model.objects.all():
    print(element)

【讨论】:

  • 谢谢先生。现在我可以从 str 加载我的模型
【解决方案2】:

将模型类本身放入列表中...

from .models import Banana, Mango

lst = [Banana, Mango]  # do not call variable 'list'
# ...

...您根本不需要进行任何字符串到模型的转换。

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    相关资源
    最近更新 更多