5

現在、私のモデル フォームは save() メソッドをオーバーライドしており、問題なく動作します。問題は、savedObject = form.save() を呼び出すと、フォームが保存されますが、None が返されることです。save() をオーバーライドする前に、保存されたオブジェクトを取得しますが、このアプローチの問題は何ですか?

モデル形式の save():

def save(self, *args, **kwargs):
       kwargs['commit']=False
       obj = super(MyForm, self).save(*args, **kwargs)
       obj.time = datetime.date.today()
       obj.expire = datetime.date.today()
       return obj.save()

POST後に私の見解で呼び出します:

savedObject = form.save()
#form is now saved, but savedObject is None
4

1 に答える 1

6

正しい方法:

def save(self, commit=True):
    obj = super(MyForm, self).save(commit=False)
    obj.time = datetime.date.today()
    obj.expire = datetime.date.today()
    if commit:
        obj.save()
    return obj
于 2013-03-03T09:27:26.170 に答える