Эта проблема очень странная, и я надеюсь, что кто-то может мне помочь. Ради аргумента, у меня есть модель Author с отношением ForeignKey к модели Book. Когда я показываю автора, я хотел бы иметь ChoiceField, который ТОЛЬКО отображает книги, связанные с этим автором. Поэтому я переопределяю метод AuthorForm. init () и создаю Список вариантов (кортежей) на основе запроса, который фильтрует книги на основе идентификатора автора. Кортеж представляет собой совокупность идентификатора книги и названия книги (т.е. (1, «Моби Дик»)). Затем эти «выборы» присваиваются атрибуту выбора ModelForm.
Когда форма отображается в шаблоне, ChoiceField отображается правильно, перечисляя только те книги, связанные с этим автором.
Здесь все становится странно.
Когда я сохраняю форму, я получаю ValueError (Невозможно назначить "u'1": Author.book "должен быть экземпляром Book). Эта ошибка имеет смысл из-за отношения FK. Однако, если я добавлю «напечатать» оператор в коде, не вносить никаких других изменений, а затем сохранить запись, она работает. Ошибка ValueError волшебным образом исчезает. Я пытался сделать это несколько раз, гарантируя, что случайно не внес другие изменения, и это работает каждый раз.
Кто-нибудь знает, что здесь происходит?