У меня есть Django ModelForm в Google App Engine с ChoiceField, скажем, местоположение:
class MyForm(ModelForm):
location = ChoiceField(label="Location")
class Meta:
model = MyModel
Чтобы динамически добавлять варианты выбора местоположения и не было проблем с кэшированием приложения, я добавляю их после инициализации формы:
form = MyForm(request.POST, instance=my_instance)
form.fields['location'].choices = Location.all().fetch(1000)
Проблема, с которой я столкнулся сейчас, заключается в том, что когда форма инициализируется с помощью данных в запросе. POST выбора еще не существует, и я получаю сообщение об ошибке, в котором говорится, что сделан неверный выбор (поскольку значение еще не выполнено) существует в списке вариантов).
Мне не нравится, что проверка происходит, когда я инициализирую форму, а не жду, пока я вызову form.is_valid (). Есть ли способ подавить проверку во время создания объекта? Или каким-то другим способом это исправить?
ОБНОВЛЕНИЕ: Я почти уверен, что ModelFormMetaclass вызывает у меня горе, проверяя предоставленный экземпляр при создании формы. Все еще не уверен, как это исправить.
Спасибо!