我正在使用以下表单为我的注册用户生成下拉列表:
class TaskAssignUserForm(forms.Form):
user = forms.ModelChoiceField(queryset=User.objects.all().order_by('username'))
在我的模板中,我将上面的表单与提交按钮一起呈现。应用程序用户可以从注册用户中选择一个并将他/她分配给任务。如果选择了用户而不是空标签(--------),这是有效的。
但是,我也希望空标签作为有效选项,取消任务和用户之间的分配。我正在使用以下views.py
并寻找一个选项来检查是否有空标签或空选。
if form_TaskAssignUserForm.is_valid():
task.user_assigned = form_TaskAssignUserForm.cleaned_data['user']
task.save()
else:
if # check if emtpy label is set
task.user_assigned = None
task.save()
我发现检查form_TaskAssignUserForm.cleaned_data['user']
是否存在可能是一种选择,但我觉得不舒服。应该有一种方法与.is_valid()
检查一起使用。
是否有解决这个问题的djangonian方式?
再见,aronadaal
答案 0 :(得分:2)
您只需要在字段上设置required=False
。
user = forms.ModelChoiceField(required=False, queryset=User.objects.all().order_by('username'))
这意味着表格无需选择即可生效。