2017-06-07 15 views
0

私はdjangoで新しく、このフォームの問題に固執しています。私はエラーが何を意味するか分かりません。見通し一致するクエリが存在しません

見通し一致のクエリは存在しません。 ()form.is_valid場合:

forms.py

class ProspectForm(forms.ModelForm): 
    full_name = forms.CharField(
     label="Full Name", 
     max_length=120, 
     required=False, 
    ) 

    email = forms.EmailField(
     label="E-mail", 
     max_length=120, 
     required=False, 
    ) 

    contact_number = forms.CharField(
     label="Contact Number", 
     max_length=14, 
     required=False, 
    ) 

    def clean_email(self): 
     email = self.cleaned_data.get('email') 
     try: 
      Prospect.objects.get(email=email) 
      raise forms.ValidationError('This email is taken') 
     except VendicsUser.DoesNotExist: 
      return email 

    def clean_number(self): 
     number = self.cleaned_data.get('number') 
     validate_integer(number) 
     try: 
      Prospect.objects.get(contact_number=number) 
      raise forms.ValidationError('This number is taken') 
     except VendicsUser.DoesNotExist: 
      if len(number) < 11: 
       return number 
      else: 
       raise forms.ValidationError('Number is too short') 

    def __init__(self, *args): 
     self.helper = FormHelper() 
     self.helper.form_tag = False 
     self.helper.form_class = 'contact_form' 
     self.helper.form_action = '' 
     self.helper.layout = Layout(
      Field('full_name', css_class='form_fields'), 
      Field('email', css_class='form_fields'), 
      Field('contact_number', css_class='form_fields'), 
      Hidden('sub_domain', ''), 
      FormActions(
       Submit('submit', 'SUBMIT', css_class='form_button'), 
      ) 
     ) 
     super(ProspectForm, self).__init__(*args) 

    class Meta: 
     model = Prospect 
     exclude = ['user'] 

views.py:ここ

が私のファイルです

は、エラーが発生し、ここで言います

def landingpage(request, subdomain=None): 
    form = ProspectForm(request.POST or None) 
    if form.is_valid(): 
     form.save(commit=False) 
     # for future changes 
     form.save() 
     return redirect('' + subdomain + '/') 

    context = { 
     'subdomain': subdomain, 
     'form': form, 
    } 
    user = get_object_or_404(WebDetail, domain=subdomain) 
    return render(request, "landingpage/landingpage.html", context) 

答えて

0

データベースに存在しないオブジェクトを取得しようとしているため、エラーが表示されます。あなたは、バックトレースを投稿しませんでしたが、私は、これは問題だと思う:

try: 
    Prospect.objects.get(email=email) 
    raise forms.ValidationError('This email is taken') 
except VendicsUser.DoesNotExist: 
    return email 

get()Prospect.DoesNotExist例外ではなく、VendicsUser.DoesNotExistを発生させます。発生した例外は、ブロックexceptの直前になります。キャッチしようとしている例外を反映するためにすべてのコードを更新してください。

+0

私はそれを見ませんでした。私も例外を更新することを忘れました。ありがとうございました。それは今働く。 –

関連する問題