Как преобразовать строку в название модели в Django? - PullRequest
0 голосов
/ 26 октября 2018

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 получаю значение флажка.Затем я хочу выбрать модель выбора пользователя.

когда я запускаю этот код, появляется AttributeError в / search 'str' объект не имеет атрибута 'objects'.

В этом коде, Я хочу вернуть значение имени модели объекта в моем models.py

Как заменить строку в List для вызова объектной модели в django?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Если вам нужно загрузить вашу модель со значения 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)
0 голосов
/ 26 октября 2018

Поместите сами модели классов в список ...

from .models import Banana, Mango

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

... и вам вообще не нужно будет преобразовывать строку в модель.

...