2016-12-28 4 views
0

django-contact-formをインストールしました。このフォームのデフォルトurl'contact/'です。しかし、私はすでに自分の連絡先ページを持っています。'contact_us/'としましょう。'contact_us/'の中にフォームを入れたいと思います。'contact_us/'の場合はurlです。django-contact-form新しいURLを使用せずに、テンプレート内でフォームを使用する方法は?

これを行う通常の方法は{% extends 'contact_us' %}ですが、これを実行して元の'contact_us/' URLを削除すると、それは私にReverseErrorを与えます。

'contact_us/'にコンテキストとして(django-contact-formから)ContactFormViewを送信した場合、私はそれが可能だと思う方法ですが、私は各ビューは、それがurlを所有していたので、それが不可能だと思います。

どのテンプレートの内部にも簡単にフォームを配置できる方法を知りたい。おそらくそれを行う簡単な方法があり、私は知らない。

答えて

0

あなたがでcontact_usからContactFormViewを呼び出すことができます。URLをオーバーライドする 1.

urls.pyこのビューをカスタマイズしたい場合は

from contact_form.views import ContactFormView 
from django.views.generic import TemplateView 

urlpatterns = [ 
# ... other URL patterns for your site ... 
url(r'^contact_us/$', 
    ContactFormView.as_view(), 
    name='contact_form'), 
url(r'^contact_us/sent/$', 
    TemplateView.as_view(template_name='contact_form/contact_form_sent.html'), 
    name='contact_form_sent'), 
] 

2.

In views.py

from contact_form.views import ContactFormView 

class CustomContactFormView(ContactFormView): 
    # Customize any function that you want to 
    template_name = 'custom_template.html' 

urls.py

from views import CustomContactFormView 

urlpatterns = [ 
# ... other URL patterns for your site ... 
url(r'^contact_us/$', 
    CustomContactFormView.as_view(), 
    name='contact_form'), 
] 
関連する問題