любые идеи, почему это происходит?Форма django получает значение из предыдущего экземпляра?
(Pdb) import copy
(Pdb) tmpForm=copy.copy(form1)
(Pdb) form1
<cms.forms.MainFeaturedForm object at 0x7f05a0493350>
(Pdb) tmpForm
<cms.forms.MainFeaturedForm object at 0x7f05a054e950>
копирование form1 в tmpForm (и убедившись, что они по разным адресам памяти), чтобы убедиться, что это поведение не происходит, потому что Form1, изменяется
(Pdb) v1=form1.save(commit=False)
(Pdb) v1.position
как можно видеть выше, v1 .position == ни сразу после form1.save (не совершат = False)
(Pdb) v1.image_type=2
(Pdb) v1.Article=article
(Pdb) v1.section=33
(Pdb) v1.save()
(Pdb) v1.position
55L
здесь я установить некоторые значения и сохранили его сохранения() функция изменения v1 positi на 55 (что ожидается)
(Pdb) v2=tmpForm.save(commit=False)
(Pdb) v2.position
55L
, но сейчас, после того как я спас v1, v2 (а укомплектовать новый экземпляр) имеет положение выставиться одному и тому же, который был установлен на v1 (не ожидается)
в случае помогает, вот функция сохранения() этого объекта (класс) Рекомендуемые:
def save(self):
if self.Article:
try:
featured = Featured.objects.get(Article=self.Article, section=self.section)
self.hiddenID = featured.hiddenID
if self.position == None:
if featured.position == None:
self.position = 55
else:
self.position = featured.position
super(Featured, self).save(force_insert=False, force_update=True)
except Featured.DoesNotExist:
self.hiddenID = None
super(Featured, self).save(force_insert=True, force_update=False)
else:
self.hiddenID = None
super(Featured, self).save(force_insert=True, force_update=False)
Что заставляет вас думать, что адрес памяти значителен? Я не могу придумать, почему это было бы так. Вы не показываете важный код, который является собственно 'form1' и как он создается. –
Я только убедившись, что он не был тот же объект form1 = MainFeaturedForm (request.POST, префикс = "f1") класс MainFeaturedForm (ModelForm): класс Meta: модель = Рекомендуемые поля = (» text1 ',' text2 ') –