保存后,从Django表单中获取模型ID

Sev*_*ths 3 python django

view.py

someForm = SomeForm(request.POST)
...
someForm.customSave(request.user)
Run Code Online (Sandbox Code Playgroud)

forms.py

class SomeForm(ModelForm):

    class Meta:
        model = Some

    def customSave(self,user):
        lv = self.save(commit=False)
        lv.created_by = user
        lv.save()
Run Code Online (Sandbox Code Playgroud)

如何获取我刚刚保存的模型(或模型)的ID someForm

Jas*_*ene 6

由于ModelForm.save的行为是返回实例,因此您可能希望在customSave方法中返回实例

def customSave(self, user):
    lv = self.save(commit=False)
    lv.created_by = user
    lv.save()
    return lv
Run Code Online (Sandbox Code Playgroud)

然后你可以访问实例上的pk或id

inst = someForm.customSave(request.user)
inst.pk or inst.id
Run Code Online (Sandbox Code Playgroud)


Chr*_*att 5

只需在调用后使用lv.pk或。保存后在实例上设置 id。lv.idlv.save()