【发布时间】:2011-01-08 12:50:19
【问题描述】:
可能是一个愚蠢的问题,但我不确定如何处理这个“正确”。
我得到了一个包含一些字段的普通表单。 我可以毫无问题地插入数据。 当我想编辑一条记录时,我使用“model_to_dict”函数来填充表单。 编辑完一条记录后,我想保存它,我的问题就从这里开始了。
django 文档说模型会根据 pk 值自动创建或更新记录。如果 pk 值存在,则为更新,否则为插入。 所以我创建了这个保存功能:
def save(self, primary_key=0):
mymodel = Somemodel(pk=primary_key,
samplefield=self.cleaned_data['samplefield'],
)
mymodel .save()
print 'PK:'+str(d.pk)
# Handle the MultipleChoiceField's
for x in self.cleaned_data['paymentMethod']:
x.mymodel_set.add(d)
所以,当我编辑记录时,这可以正常工作。 但是当我插入一条新记录时,它可以正常插入,但是 mymodel.id = 0 这意味着我无法保存 MultipleChoiceFields 的关系。
所以我想知道这是否是处理此问题的好方法? 为什么保存模型后mymodel.id = 0?
【问题讨论】: