view.py
someForm = SomeForm(request.POST)
...
someForm.customSave(request.user)
forms.py
class SomeForm(ModelForm):
class Meta:
model = Some
def customSave(self,user):
lv = self.save(commit=False)
lv.created_by = user
lv.save()
如何获取我刚从someForm
保存的模型(或模型)的ID?
答案 0 :(得分:6)
由于ModelForm.save的行为是返回实例,您可能希望在customSave方法中返回实例
def customSave(self, user):
lv = self.save(commit=False)
lv.created_by = user
lv.save()
return lv
然后您可以访问实例上的pk或id
inst = someForm.customSave(request.user)
inst.pk or inst.id
答案 1 :(得分:4)
在致电lv.pk
后,只需使用lv.id
或lv.save()
即可。保存后,在实例上设置id。
答案 2 :(得分:1)
覆盖了save方法:
def save(self, form, *args, **kwargs):
super(MyModel, self).save(*args, **kwargs)
logger.debug(self.id)