我正试图从动态列表中提供Django的下拉菜单。例如,每次运行模型时,都应该采用数据集的列名称,这些名称应显示在下拉菜单中。
以前,我使用过Django的文本框,看起来像这样:
Forms.py
from django import forms
class LinearForm(forms.Form):
Column_name1 = forms.CharField()
我看到forms.ModelMultipleChoiceField()
和forms.ChoiceField()
将选项作为值列表,因为我需要从Views.py
生成动态列表。我该如何处理?
答案 0 :(得分:0)
我们可以覆盖表单__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)
# ....