简体   繁体   中英

How do I create a Django ModelForm, so that it's fields are sometimes required, sometimes not?

Ok, here is the question. Imagine I have a ModelForm which have only two fields. like this one:

class ColorForm(forms.Form):
    color_by_name = forms.CharField()
    color = forms.IntegerField(widget = forms.Select(choices=COLOR_CHOICES))

So a user can either input a color name, a choose it from a list. Color is required, but that doesn't mean, that user should enter it manually. There do I put validation, so that my code checks if user selected color in dropdownlist and if not then he should write it manually?

Make them both required=False , but write a clean() method which checks for one or the other. See the validation documentation for an example.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM