如何在 Django 中将字符串转换为调用模型的名称?

min*_*aka 2 python django django-models django-views

查看.py

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

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

当我运行此代码时,在 /search 'str' object has no attribute 'objects' 处出现 AttributeError。

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

如何在列表中替换字符串以在 Django 中调用对象模型?

Ant*_*ane 11

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

from django.apps import apps

Model = apps.get_model('app_name', 'model_name')
for element in Model.objects.all():
    print(element)
Run Code Online (Sandbox Code Playgroud)