【发布时间】:2022-01-07 12:52:35
【问题描述】:
我有两个选择类,我试图以未绑定的形式创建。数据选择只与在视图中创建的表示相关,因此是一次性的,不需要保存在模型中。
我面临的挑战是我可以传入字段列表,但如何设置“默认”选中/选定值以使表单变为“绑定”?
views.py
def cards(request):
sort_name = []
sort_name.append("Alphabetic Order")
sort_name.append("Most Popular")
sort_name.append("Least Popular")
sort_name.append("Highest Win Rate")
sort_name.append("Lowest Win Rate")
sort_id = range(len(sort_name))
sort_list = list(zip(sort_id, sort_name))
<more code to make filt_list and zip it>
if request.method == 'POST':
form = cardStatsForm(request.POST, sortList=sort_list, filtList=filt_list)
if form.is_valid():
do something
else:
do something else
else:
form = cardStatsForm(filter_list, sort_list)
forms.py
class cardStatsForm(forms.Form):
def __init__(self, filterList, sortList, *args, **kwargs):
super(cardStatsForm, self).__init__(*args, **kwargs)
self.fields['filts'].choices = filterList
self.fields['filts'].label = "Select player rankings for inclusion in statistics:"
self.fields['sorts'].choices = sortList
self.fields['sorts'].label = "Choose a sort order:"
filts = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=(), required=True)
sorts = forms.ChoiceField(choices=(), required=True)
我遇到的困难是表单未通过“is_valid”测试,因为它没有绑定,并且我有“required=true”设置(因此用户必须选择一个复选框/选择一个值),但是我无法强制执行逻辑,因为表单似乎永远不会“绑定”。
【问题讨论】:
标签: django django-forms