6

我有能力在表单中提交标签。提交表单后,我看到:

tags=['3','4','5']

标签值是用户选择的 ID。我能够从request.POST对象中获取值,一切都很好。问题是用户必须选择至少一个标签。我想在 Django 表单中进行验证,但我不确定在 django 表单中提供什么样的表单字段值?通常我使用CharField,DateField等。但是获取数组值的存在是什么?然后我可以clean为它提供一个函数。谢谢!

4

1 回答 1

4

试试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()
于 2012-07-29T00:05:09.540 回答