我正在努力解决以下问题并需要一些指导,您将在下面看到我的 form.py。我有两个名为group
and的字段single
。我需要对他们应用以下规则/验证......
- 用户必须输入一个数字或至少选择一个组,但不能同时选择两者
因此,用户永远不能同时选择一个组并输入一个数字,但他们必须有一个或另一个。希望这有意义吗?
由于这些规则,我不能只添加required = true
并需要某种自定义验证。这是我遇到问题的自定义验证。
任何人都可以根据我需要的验证形式给我一个例子吗?
谢谢。
表格.py
class myForm(forms.ModelForm):
def __init__(self, user=None, *args, **kwargs):
super(BatchForm, self).__init__(*args, **kwargs)
if user is not None:
form_choices = Group.objects.for_user(user).annotate(c=Count('contacts')).filter(c__gt=0)
else:
form_choices = Group.objects.all()
self.fields['group'] = forms.ModelMultipleChoiceField(
queryset=form_choices, required=False
)
self.fields['single'] = forms.CharField(required=False)