尝试生成已清理的数据()时出错!姜

2024-10-03 02:46:29 发布

您现在位置:Python中文网/ 问答频道 /正文

必须是简单的解决方案。但我看不出来。请帮帮我。“gorod”似乎在请求中,但当我尝试cleaned_data()时,它会给我KeyError

KeyError at /ticket/

'gorod'

Request Method:     POST
Request URL:    http://localhost:8000/ticket/
Exception Type:     KeyError
Exception Value:    

'gorod'

Exception Location:     C:\Documents and Settings\POLINOM\web\website\orders\views.py in SaveOrder2, line 93
Python Executable:  C:\Python26\python.exe
Python Version:     2.6.5


Traceback:
File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response
  92.                 response = callback(request, *callback_args, **callback_kwargs)
File "C:\Documents and Settings\POLINOM\web\website\orders\views.py" in ticket
  136.             adr_form=MakeForm2(request)
File "C:\Documents and Settings\POLINOM\web\website\orders\views.py" in MakeForm2
  58.             SaveOrder2(request,form)
File "C:\Documents and Settings\POLINOM\web\website\orders\views.py" in SaveOrder2
  95.     gorod=form.cleaned_data['gorod']

Exception Type: KeyError at /ticket/
Exception Value: 'gorod'

我的表格:

^{pr2}$

这是从以下形式继承而来的:

class AddressForm(forms.Form):
    address = forms.CharField(label=u"Адрес",max_length=200,required=True,widget=forms.TextInput(attrs={'size':60}))
    city = forms.CharField(label=u"Город",max_length=50,required=True)
    country = forms.ChoiceField(label=u"Страна",required=True,choices=COUNTRIES)
    state = forms.ChoiceField(label=u"Штат/Провинция",required=False, choices=StateProvince().get_all_states(), error_messages={'invalid_choice':u'нет среди допустимых значений. Пожалуйста, выберите правильный вариант'}) 
    zip = forms.CharField(label=u"Почтовый код",max_length=10,widget=forms.TextInput(attrs={'size':8}),required=True)
    phone_number = forms.CharField(label=u"Номер телефона",required=False)

我正在使用两种模型:

class Order(models.Model):
    STATUS_CHOICES=[
                    (1, 'Send'),
                    (0, 'Not_send'),                    
                ]
    user=models.ForeignKey(User)
    product=models.ForeignKey(Product)
    status = models.CharField(max_length=1,choices=STATUS_CHOICES)
    country = models.CharField(max_length=2)
    state = models.CharField(max_length=50) 
    zip = models.CharField(max_length=10)
    city = models.CharField(max_length=50)
    street = models.CharField(max_length=200)
    phone=models.CharField(max_length=20)


    def __unicode__(self):
        return 'Order by ' + self.user

class TicketProp(models.Model):
    order=models.ForeignKey(Order)
    note=models.CharField(max_length=1500)
gorod=models.CharField(max_length=2)

Tags: andinpymodelsexceptionrequiredformsticket
1条回答
网友
1楼 · 发布于 2024-10-03 02:46:29

可能您的AddressForm类缺少gorod字段?表单填充.cleaned_data属性(后面没有()!-)基于表单中的字段;例如,在the source中,对于当前的django.forms,您将在第274行看到

for name, field in self.fields.items():

在循环的主体中,.cleaned_datadict被填充。在

那么你的AddressForm代码是什么(以及它可能使用的模型的代码)。。。?在

相关问题 更多 >