I have the ability submit tags in a form. When the form is submitted, I see:
tags=['3','4','5']
The tag values are ID's for what the user has chosen. I am able to get the values from the request.POST
object and everything is fine. Problem is that the user has to select ATLEAST one tag. And I want to do the validation in a Django form, but I'm not sure what kind of form field value to supply in the django form? Normally I use CharField
, DateField
, etc. But what exists to get the array value? And then I can supply a clean
function for it. Thanks!
Try django.forms.MultipleChoiceField()
.
See 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)
EDIT 1:
If what you want to do is to turn a text field into an array...
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()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With