Django forms переданный объект экземпляра переопределяется в is_valid
Я работал над представлением Django, которое обновляет определенный объект модели x
. В методе POST я инициирую ModelForm
и передаю instance
объект модели x
. Но когда я пытаюсь использовать объект x
внутри блока if form.is_valid():
, некоторые значения в vars(x)
переходят в None
. Вот сниппет для объяснения сценария.
class MyUpdateView(generic.View):
form_class = MyModelForm
def post(self, request, *args, **kwargs):
model_obj = MyModel.objects.get(id=kwargs.get("pk"))
# Example: {"emp": 113, "project": 22, "salary": 28000}
form = self.form_class(request.POST, instance=model_obj)
print(vars(model_obj)) # works fine, shows all the data
if form.is_valid():
print(vars(model_obj)) # few values go None, not reusable
# Example: {"emp": None, "project": None, "salary": 28000}
Как мы видим, когда переменные проверяются внутри form.is_valid()
, что-то происходит с переданным instance
объектом.
Что может быть причиной этого?