Как передать аргумент из представления в форму? - PullRequest
1 голос
/ 05 мая 2020

Я инициализирую форму аргументом. Часть моего представления:

items = Location.objects.filter(patient=pk)
query_form = QueryForm(items)

forms.py

class QueryForm(forms.Form, items):
    period = forms.IntegerField()
    location = forms.ModelChoiceField(queryset=Location.objects.all().order_by('location_name'))

, но я получаю сообщение об ошибке NameError: name 'items' is not defined.

1 Ответ

1 голос
/ 05 мая 2020

Вы переопределяете функцию __init__ формы:

class QueryForm(forms.Form):
    period = forms.IntegerField()
    location = forms.ModelChoiceField(queryset=Location.objects.none())

    def __init__(self, *args<b>, items=None</b>, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['location'].queryset = <b>items</b>.order_by('location_name')

, тогда вы можете построить форму с помощью:

items = Location.objects.filter(patient_id=pk)
query_form = QueryForm(<b>items=items</b>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...