私はホームページの一番下に連絡先フォームを埋め込む必要があります。これは1ページのアプリケーションです。私は成功した別のページ(myportfolio.com/contactなど)に自分自身の連絡先フォームを作成する方法についていくつかのチュートリアルを続けました。残念ながら、私はこれらの結果を適合させることができず、他のチュートリアルを見つけることもできませんでした。私の他のモデルデータ(例えば、myportfolio.com)がすべて同じページに表示され、機能します。ホームページ上のDjango連絡フォーム
このチュートリアルは、https://atsoftware.de/2015/02/django-contact-form-full-tutorial-custom-example-in-django-1-7に従っています。私は1つのアプリケーションしか作成していません。
私はこれがやりたいことは非常に一般的なものでなければならないと感じています。それは私が何か目立つようなものを見落としていると思います。このようなアプリケーションで
がviews.py
from django.views.generic import TemplateView
from portfolio.models import Experience
class HomePage(TemplateView):
template_name = 'portfolio/base.html'
def get_context_data(self, *args, **kwargs):
context = super(HomePage, self).get_context_data(*args, **kwargs)
context['experience_list'] = Experience.objects.order_by('-start_date')
return context
contact_form.html
{% extends 'portfolio/base.html' %}
{% block contact %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
{% endblock %}
今すぐcontact_form.htmlポートフォリオに入る/ base.html:
base.html
{# {% include "contact_form/contact_form.html" %}#}
{% block contact %}{% endblock %}
このシナリオでは、何も表示されません。ただし、2行目をコメントアウトして1行目のコメントを削除すると、送信ボタンが表示されます。
今、私はdjango-contact-formがこのフォームを手に入れ、myportflio.com/contactのシナリオでアクセス可能なときのように何をするべきかを知っていると仮定しています。しかし、以前はurls.pyファイルを使って/ contactへの参照があったことは分かっていますが、base.htmlファイルに埋め込む場合は参照がなくなりました。
コンテキストにモデルデータを追加するのと同じように、HompePageビューに何らかの方法でフォームを追加できますか?
あなたのメインページにフォームを追加して、モーダルとjquery/bootstrap *スーパーシンプルハックでロードしてください – Thomas
あなたのviews.pyとテンプレートのフォームを宣言したHTML部分を表示してください – hansTheFranz
@hansTheFranzちょうどそれらといくつかのエキストラを追加しました。 – grantathon