На самом деле не имеет отношения к кодированию.
Со статистической точки зрения вы можете ввести как можно больше объясняющих переменных. Однако вам нужно достаточно данных. Эмпирическое правило заключается в том, что вам нужно иметь не менее 10 наблюдений на комбинацию категориальных переменных и еще больше, чтобы добавить непрерывную переменную.
С технической точки зрения вы можете ввести столько объясняющих переменных, сколько захотите.
Если Вы нуждаетесь в незаполненном бланке с выбранным значением по умолчанию, то передаете 'первоначальный' словарь конструктору Вашей образцовой формы с помощью названия поля как ключ:
form = MyModelForm (initial={'gender':'M'})
- ИЛИ -
Можно переопределить определенные атрибуты ModelForm с помощью декларативной природы Форм API. Однако это является, вероятно, немного громоздким для этого варианта использования, и я упоминаю это только, чтобы показать Вам, что можно сделать это. Можно найти другое использование для этого в будущем.
class MyModelForm (forms.ModelForm):
gender = forms.ChoiceField (choices=..., initial='M', ...)
class Meta:
model=MyModel
- ИЛИ -
Если Вы хотите ModelForm, который связывается с конкретным экземпляром Вашей модели, можно передать 'экземпляр' модели, которая заставляет Django вытягивать выбранное значение из той модели.
form = MyModelForm (instance=someinst)
Конечно, default
добьется цели?
например.
gender = models.CharField(max_length=1, choices=GENDER_CHOICES, default='M', null=True)