Dropdowns Django с динамическим списком - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь дать раскрывающееся меню от Django из динамического списка. Например, каждый раз, когда я запускаю модель, она должна принимать имена столбцов набора данных, и эти имена должны появляться в раскрывающемся меню.

Ранее я использовал текстовое поле от Django, которое выглядит примерно так:

Forms.py

    from django import forms

    class LinearForm(forms.Form):

        Column_name1 = forms.CharField()

Я видел forms.ModelMultipleChoiceField() и forms.ChoiceField(), которые принимают выбор в качестве списка значений, поскольку мне нужно сгенерировать динамический список из моего Views.py. Как мне поступить с этим?

1 Ответ

0 голосов
/ 27 апреля 2018

мы можем переопределить форму __init__ метод, чтобы сделать это

class LeniarForm(forms.Form):

    choice_field = forms.ChoiceField(choices=[])

    def __init__(self, *args, **kwargs):
        choices = kwargs.pop('choices', [])
        super(LeniarForm, self).__init__(*args, **kwargs)
        self.fields['choice_field'].choices = choices

views.py

from .forms import LeniarForm

def my_view(request):
    # ....
    dynamic_choices = (('a', 'a'), ('b', 'b'))
    f = LeniarForm(choices=dynamic_choices)
    # ....
...