2015-06-05 11 views
0

У меня есть форма Django, где я бы хотел использовать динамический список выбора из запроса в моем представлении.Как создать список выбора формы Django из Query in View?

Вот что я пытаюсь сделать:

views.py

getdata = MyModel.objects.filter(filter=filter) 

form = MyForm(request.POST or None, 
       mylist=[((getdata.id), (getdata.name)) for choice in getdata] 

, когда я бегу, что я получаю 'QuerySet' object has no attribute 'id' ошибку.

Я знаю, что могу использовать ModelChoiceField и делать запрос в моей форме, но для этого конкретного случая я предпочел бы использовать список, сгенерированный на моем представлении.

ответ

1

попробовать:

form = MyForm(request.POST or None, 
      mylist=[((choice.id), (choice.name)) for choice in getdata] 

когда вы итерацию, как это будет его в списке понимания, здесь или Dict понимания вы должны думать так же, как вы делаете, когда вы пишете цикл:

for choice in getdata: 
    #do something 
+0

Спасибо за быстрый ответ! Ваша помощь приветствуется! – WayBehind

2

choice - это отдельный элемент на каждой итерации, а не getdata.

mylist=[((choice.id), (choice.name)) for choice in getdata] 
+0

Daniel, ваши отзывы всегда ценны, и вы являетесь настоящим активом для сообщества Django/Python. Спасибо за вашу постоянную работу и помощь! – WayBehind

Смежные вопросы