есть идеи, почему это происходит?
(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 (commit = False)
(Pdb) v1.image_type=2
(Pdb) v1.Article=article
(Pdb) v1.section=33
(Pdb) v1.save()
(Pdb) v1.position
55L
здесь я установил некоторые значения и сохранил их
функция save () меняет положение v1 на 55 (что ожидается)
(Pdb) v2=tmpForm.save(commit=False)
(Pdb) v2.position
55L
но теперь, после того, как я сохранил v1, v2 (совершенно новый экземпляр) имеет позицию, установленную на ту же, что была установлена на v1 (не ожидается)
Если это поможет, вот функция save () этого объекта (класс Featured):
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)