Nik*_*ita 9 python django django-models
如何将参数传递给我的自定义保存方法,保留正确*args
,**kwargs
以传递给te超级方法?我在尝试这样的事情:
form.save(my_value)
Run Code Online (Sandbox Code Playgroud)
和
def save(self, my_value=None, *args, **kwargs):
super(MyModel, self).save(*args, **kwargs)
print my_value
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.我究竟做错了什么?
编辑:我找到了这个示例(请参阅最后一条消息,传递'重新排序'):http: //groups.google.com/group/django-users/browse_thread/thread/b285698ea3cabfc9/6ce8a4517875cb40?lnk = laot
这基本上就是我想做的事情,但my_value
出于某种原因被认为是一个意想不到的争论.
Dan*_*aab 20
关键字参数必须遵循位置参数.试试这个:
def save(self, my_value, *args, **kwargs):
....
Run Code Online (Sandbox Code Playgroud)
要么:
def save(self, *args, **kwargs):
my_value = kwargs.pop('my_value', None)
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以尝试以下操作。
将保存方法重写为:
def save(self, my_val, *args, **kwargs):
print my_val
# do_something here
return super(MyModel, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
调用 save 方法时:
MyModel.save(my_val="fooooo")
Run Code Online (Sandbox Code Playgroud)
这将打印my_val
并保存它。
归档时间: |
|
查看次数: |
10283 次 |
最近记录: |