2016-06-13 54 views
0

我重写一个Django模型的.save()方法,我想保存时传递一个额外的参数:Django的 - 如何使用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()被调用两次。 –