Django pythonでNoReverseMatch atとエラーが出ます。
https://medium.com/@kjmczk/django-contact-form-5a35d43b00a6
こちらのサイトを参考にお問い合わせフォームを作成したのですが、NoReverseMatchのエラーが出ます。
veiws.py
python
1class ContactFormView(FormView): 2 template_name = 'contact/contact_form.html' 3 form_class = ContactForm 4 success_url = reverse_lazy('contact_result') 5 6 def form_valid(self, form): 7 form.send_email() 8 return super().form_valid(form) 9 10 11class ContactResultView(TemplateView): 12 template_name = 'contact/contact_result.html' 13 14 def get_context_data(self, **kwargs): 15 context = super().get_context_data(**kwargs) 16 context['success'] = "お問い合わせは正常に送信されました。" 17 return context
forms.py
python
1class ContactForm(forms.Form): 2 name = forms.CharField( 3 label='', 4 max_length=100, 5 widget=forms.TextInput(attrs={ 6 'class': 'form-control', 7 'placeholder': "お名前", 8 }), 9 ) 10 email = forms.EmailField( 11 label='', 12 widget=forms.EmailInput(attrs={ 13 'class': 'form-control', 14 'placeholder': "メールアドレス", 15 }), 16 ) 17 message = forms.CharField( 18 label='', 19 widget=forms.Textarea(attrs={ 20 'class': 'form-control', 21 'placeholder': "お問い合わせ内容", 22 }), 23 ) 24 25 def send_email(self): 26 subject = "お問い合わせ" 27 message = self.cleaned_data['message'] 28 name = self.cleaned_data['name'] 29 email = self.cleaned_data['email'] 30 from_email = '{name} <{email}>'.format(name=name, email=email) 31 recipient_list = [settings.EMAIL_HOST_USER] # 受信者リスト 32 try: 33 send_mail(subject, message, from_email, recipient_list) 34 except BadHeaderError: 35 return HttpResponse("無効なヘッダが検出されました。") 36
urls.py
python
1app_name = 'register' 2 3urlpatterns = [ 4 path('contact/', views.ContactFormView.as_view(), name='contact_form'), 5 path('contact/result/', views.ContactResultView.as_view(), name='contact_result'),
html
1<!-- contact/contact_form.html --> 2 3{% extends "register/base.html" %} 4 5{% block content %} 6<div class="container"> 7 <div class="row"> 8 <div class="col-md-8"> 9 <h1>お問い合わせ</h1> 10 <p>お問い合わせフォームです。</p> 11 <form method="POST">{% csrf_token %} 12 {{ form.as_p }} 13 <button type="submit" class="btn btn-primary">送信</button> 14 </form> 15 </div> 16 </div> 17</div> 18{% endblock %} 19 20 21<!-- contact/contact_result.html --> 22 23{% extends "register/base.html" %} 24 25{% block content %} 26{{ context }} 27{% endblock %}
error
1Reverse for 'contact_result' not found. 'contact_result' is not a valid view function or pattern name. 2
です。
Python 3.7.4
Django 3.0.2です。
ちなみにお問い合わせ内容は送ることはできます。直接入力でcontact/resultのページ画面も表示できました。
お問い合わせフォームから送信ボタンを押すとNoReverseMatchのエラーが出ます。
Django 3.0 メールを送信する
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー