我有能力在表单中提交标签。提交表单后,我看到:
tags=['3','4','5']
标签值是用户选择的 ID。我能够从request.POST
对象中获取值,一切都很好。问题是用户必须选择至少一个标签。我想在 Django 表单中进行验证,但我不确定在 django 表单中提供什么样的表单字段值?通常我使用CharField
,DateField
等。但是获取数组值的存在是什么?然后我可以clean
为它提供一个函数。谢谢!
试试django.forms.MultipleChoiceField()
。见https://docs.djangoproject.com/en/dev/ref/forms/fields/#multiplechoicefield
known_tags = (
(1, 'Choice 1'), (2, 'Choice 2'), (3, 'Choice 3'),
(4, 'Choice 4'), (5, 'Choice 5'))
class MyForm(django.forms.Form):
tags = django.forms.MultipleChoiceField(choices=known_tags, required=True)
编辑1:
如果您要做的是将文本字段转换为数组...
class MyForm(django.forms.Form):
tags = django.forms.CharField(required=True)
def clean_tags(self):
"""Split the tags string on whitespace and return a list"""
return self.cleaned_data['tags'].strip().split()