2016-06-13 8 views
0

私はDjangoのモデルの.save()メソッドをオーバーライドしていますし、保存するときに、私は追加の引数を渡すためにしようとしている使用方法:ジャンゴ - kwargsから

ビュー:

def form_valid(self, form):  
    response = super(DeliveryCreateView, self).form_valid(form)  
    self.object.save(owner=self.request.user) 
    return response 

.SAVEでの()

def save(self, *args, **kwargs):    
    owner = kwargs.pop('owner', None) 

私の問題は、常に所有者が空になることです。 私は何が間違っていますか?

+0

'owner'は空になるか、' owner'は 'kwargs'にありませんか? – Gocht

+1

これは本当に 'save()'にありますか? 'owner'は' save() 'が戻るときに消えるローカル変数です。 'self.owner = ...'を意味しないのですか? – alexis

答えて

0

標準の作成または更新ビューであると仮定すると、スーパークラスform_validは、フォームを介してすでにモデルの保存メソッドを呼び出しています。その状況に対処する必要があるか、スーパーを呼び出さないでください。

+0

あなたは正しいです。私は引数を渡すことができたが、あなたが言ったように.save()は2回呼び出されている。 –