Хотя ответ Даниэля Роузмана работает, это не лучшее решение. Это требует небольшого дублирования кода, поскольку необходимо повторно объявить поле формы. Например, если у вас есть verbose_name
в этом поле, вам также придется добавить label='My verbose_name already set on model'
к строке CharField
, так как повторное объявление всего поля в основном стирает все, что установлено в вашей модели для этого поля.
Лучший подход - переопределить метод формы __init__
и явно установить field.required
в True
или False
.
class MyModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyModelForm, self).__init__(*args, **kwargs)
self.fields['myfield'].required = True