Django上我得到这个回溯:Django的:关键字参数多个值 '初始'
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
372. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
202. return view(request, *args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
25. return bound_func(*args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
21. return func(self, *args2, **kwargs2)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/db/transaction.py" in inner
223. return func(*args, **kwargs)
File "/Users/eeytan/ddragon/lib/python2.7/site-packages/django/contrib/admin/options.py" in change_view
1085. form = ModelForm(request.POST, request.FILES, instance=obj)
Exception Type: TypeError at /admin/dragon_portal/parentprofile/1/
Exception Value: __init__() got multiple values for keyword argument 'instance'
对于基于Creating one Django Form to save two models此代码:
class ParentCreationForm(UserCreationForm):
first_name = forms.CharField(max_length=100)
last_name = forms.CharField(max_length=100)
email = forms.EmailField()
#ice_contact = forms.CharField(max_length=100)
#notes = HTMLField()
def __init__(self, instance=None, *args, **kwargs):
_fields = ('username', 'first_name', 'last_name', 'email', 'password')
_initial = model_to_dict(instance.dragonuser, _fields) \
if instance is not None else {}
kwargs['initial'] = _initial
super(ParentCreationForm, self).__init__(instance=instance, *args, **kwargs)
self.fields.update(fields_for_model(DragonUser, _fields))
正如你所看到的,签名__init__()
没有改变。另外,更奇怪的是,Django的更详细的回溯表明,对于回溯中的每一步,argv
总是,总是,{}
,所以我甚至不知道错误来自哪个回溯点。
* args和'** kwargs'的值是什么?似乎在'** kwargs'中有一个关键值对'instance' –
你能展示调用这段代码的视图吗? – karthikr
另外,是否存在'instance'或'initial'的问题? – karthikr