2010-08-15 100 views
-1

我嘗試使用Django formWizard,一切都很好,但即時在最後一步得到一個錯誤後提交FormWizard和保存數據

Traceback (most recent call last): 

File "/home/vacantes/webapps/django/lib/python2.6/django/core/handlers/base.py", line 100, in get_response 
    response = callback(request, *callback_args, **callback_kwargs) 

File "/home/vacantes/webapps/django/lib/python2.6/django/utils/decorators.py", line 21, in _wrapper 
    return decorator(bound_func)(*args, **kwargs) 

File "/home/vacantes/webapps/django/lib/python2.6/django/utils/decorators.py", line 76, in _wrapped_view 
    response = view_func(request, *args, **kwargs) 

File "/home/vacantes/webapps/django/lib/python2.6/django/utils/decorators.py", line 17, in bound_func 
    return func(self, *args2, **kwargs2) 

File "/home/vacantes/webapps/django/lib/python2.6/django/contrib/formtools/wizard.py", line 101, in __call__ 
    return self.done(request, final_form_list) 

File "/home/vacantes/webapps/django/hay_vacantes/curriculums/forms.py", line 56, in done 
    website = data['website'] 

TypeError: __init__() got an unexpected keyword argument 'website' 

我不知道問題出在哪裏,在我的模型,我有一個網站字段,但...爲什麼錯誤?

model.py

class Generales(models.Model): 
    usuario = models.OneToOneField(User,unique=True) 
    ..... 
    estado_civil = models.SmallIntegerField(max_length=1,choices=CIVIL) 
    website  = models.URLField(verbose_name='Website', verify_exists=False,null=True,blank=True) 

,並在我的形式:

forms.py

#others forms 
..... 

class ContactWizard(FormWizard): 
    def done(self, request, form_list): 
     data = {} 
     for form in form_list: 
      data.update(form.cleaned_data) 

     generales = Generales(
      usuario    = request.user.id, 
      documento_identidad = data['documento_identidad'], 
      tipo    = data['tipo'], 
      tel_fijo   = data['tel_fijo'], 
      celular    = data['celular'], 
      foto    = data['foto'], 
      sexo    = data['sexo'], 
      direccion   = data['direccion'], 
      codigo_postal  = data['codigo_postal'], 
      pais    = data['pais'], 
      ciudad    = data['ciudad'], 
      fecha_nacimiento = data['fecha_nacimiento'], 
      estado_civil  = data['estado_civil'], 
      website    = data['website'] 
     ) 
     generales.save() 


     # others forms 
     ..... 
     return HttpResponseRedirect('/panel/completo/') 

編輯

urls.py

from vacantes.curriculums.forms import Generales,Areas,Experiencia,Referencias,ContactWizard 


urlpatterns = patterns('', 
       url(r'^completar/$', ContactWizard([Generales, Areas,Experiencia,Referencias])), 
) 

我不知道是否保存像形式嚮導需要的數據,但即時通訊嘗試。

有關錯誤的任何想法?

感謝

+0

你如何實例化表單實例? – czarchaic 2010-08-16 00:23:04

+0

你可以發佈更多的堆棧跟蹤嗎?哪個對象的__init__被調用?爲什麼不使用ModelForms並直接調用保存? – 2010-08-16 11:01:52

回答

0

,因爲我有我的應用程序已經使用FormWizard,提交的數據的密鑰不「網站」或「estado_civil」,...但其形式爲「< form_number> - < FIELD_NAME>」 。例如:如果字段「網站」處於第一種形式,則爲「0-網站」;如果是第二種形式,則爲「1-網站」等。 您可以打印出整個提交的數據字典來檢查。