Проблема в том, что у вас есть внешний лексемный ключ в вашей графической модели.
Поскольку вы используете django Modelforms, если вы не установите blank=True
, null=True
в отношение внешнего ключа, оно автоматически становится обязательным полем.
в своей форме вы заявили, что не хотите показывать выбор внешнего ключа лексемы, поэтому он не отображается в вашей форме:
fields = ['value']
, поэтому вы получаете обязательное полеотсутствует ошибка в вашей форме.
У вас есть два возможных решения:
Решение 1
add blank = True, null = True для отношений с внешним ключом:
lexeme = models.ForeignKey(Lexeme, blank=True,null=True on_delete=models.CASCADE)
Решение 2: установить значение лексемы при инициализации формы:
class GraphemeForm(Form):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
lexeme = Lexeme.objects.get(id=1)
self.fields['lexeme'].initial = lexeme
class Meta:
model = Grapheme
fields = ['value']