@mariodev правильно. Если вы хотите более элегантный способ сделать это, обратитесь к https://stackoverflow.com/a/37738828/2812260 (соответствующая часть, скопированная ниже):
Если вы действительно хотите написать элегантный, СУХОЙ код, вы должны создать класс базовой формы, который динамически ищет все необходимые вам поля и изменяет их виджета необходимый атрибут для вас (вы можете назвать его как угодно, но «BaseForm» кажется, склонны):
from django.forms import ModelForm
class BaseForm(ModelForm):
def __init__(self, *args, **kwargs):
super(BaseForm, self).__init__(*args, **kwargs)
for bound_field in self:
if hasattr(bound_field, "field") and bound_field.field.required:
bound_field.field.widget.attrs["required"] = "required"
и тогда есть все ваши объекты формы происходят от него:
class UserForm(BaseForm):
class Meta:
model = User
fields = []
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
email = forms.EmailField(required=True, max_length=100)