フッターの各ページの下部に表示される連絡フォームがあります。私は単にそれを私のbase.htmlの底に入れました。今私はそれを提出する方法を把握したい。 wagtailが提供するすべての例は、私がそれ専用のページ全体を持っていることを前提としているので、それ自身に送信します。Django Wagtail ajaxお問い合わせフォーム
これは私のページではないので、私にとってはうまくいかない。
私はそれがどのように見えるべきかの疑似コードを書いています。
def submitContact(request):
source_email = request.POST.get('email')
name = request.POST.get('name')
message = request.POST.get('message')
if (source_email is not None) and (name is not None) and (message is not None):
body = "sample"
send_mail(
name,
message,
source_email,
['[email protected]'],
fail_silently=False,
)
誰かがページモデルから継承しませおよびスニペットではないんモデル内のエンドポイントを作成する方法を示しセキレイリソースを指すことができれば、その後、私のフォームは、理想的には、この
<form class="form-group" role="form" method="post" action="/submitContact">
......
</form>
ようなものになるだろうそれは有用である「要求」コンテンツを維持する。理想的には、このデータを連絡先「テーブル」に記録してからメールを送信することをお勧めします。私はスニペットを包んだ私は必要な変数を取得する機能のための正しいコンテキストで要求を再ルーティングので、メール
追加情報
を送信するために私urls.pyに追加する必要があります
フッタの周りにtemplatetagsを使っていくつかの文脈を提供するだけで、そこにこれを置くだけで価値が得られます。
下記を参照してください。
@register.inclusion_tag('home/menus/footer.html', takes_context=True)
def footers(context):
return {
'footers': Footers.objects.first(),
'request': context['request'],
}
もしあなたがページモデルを継承していなければ、実際に何をしようとしているのかに関するWagtail特有のものはないので、Wagtailのドキュメントはこれをカバーしません。あなたはプレーンなDjangoビュー。 Djangoのビューの作成に慣れていない場合は、ここから始めてください:https://docs.djangoproject.com/en/1.11/intro/tutorial01/ – gasman
Wagtail自体でより良い方法がありますか? – sqwale
いいえ、おそらくそうではありません。Wagtailは、Djangoのフィーチャセットと一緒に動作するように設計されています。その上にレイヤーではありません。 Djangoが非常に優れていることはたくさんあり、フォームの提出を処理してデータベースに入れることはその1つです...そのような場合、Djangoに直接作業することは絶対に正しいことです。 – gasman