Django ModelForm required à partir du Model

Les propriétés required à redéfinir pour un ModelForm ?

Lorsqu'on utilise un ModelForm avec Django, il ne réutilise pas par défaut les attributs required des models. Je ne sais pas pourquoi cela a été codé de cette manière, mais c'est tout de même pénible de devoir réaffecter un attribut required au formulaire alors qu'il existe dans le model. Cela ne correspond pas au principe DRY (Don't Repeat Yourself).

Solution élégante

Il existe cependant une solution élégante à ce problème qui consiste à définir une sous-classe de ModelForm et de désactiver l'attribut required aux champs du formulaire en fonction des champs du model. Voici la classe à utiliser :

class ModelFormBase(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ModelFormBase, self).__init__(*args, **kwargs)

for key in self.fields:
self.fields[key].required = False


J'espère que ce code vous aura été utile.