Ich habe ein Kontaktformular, das am Ende jeder Seite in der Fußzeile erscheint. Ich habe es einfach in meine base.html unten eingefügt. Jetzt möchte ich einen Weg finden, es einzureichen. Alle Beispiele, die Bachstelzen liefern, gehen von der Annahme aus, dass ich ihr eine ganze Seite widme und daher sich selbst unterwerfe.Django Wagtail Ajax Kontaktformular
Dies kann nicht für mich arbeiten, da es keine Seite ist.
Ich habe Pseudo-Code geschrieben, von dem ich denke, dass es so aussehen sollte.
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,
)
Dann würde meine Form so etwas wie dieses
<form class="form-group" role="form" method="post" action="/submitContact">
......
</form>
Im Idealfall, wenn jemand Bachstelze Ressourcen zeigen könnte, die zeigen, wie Endpunkte in Modelle erstellen, die von der Seite Modell nicht nicht Schnipsel erben und sind die "Request" Inhalte beibehalten, die nützlich wären. Idealerweise würde ich es vorziehen, diese Daten in Kontakt "Tabelle" zu protokollieren und dann die E-Mail zu senden.
Was soll ich zu meinem urls.py fügen Sie die Anfrage mit dem richtigen Kontext für die Funktion zum Umleiten der erforderlichen Variablen abrufen und damit die E-Mail
Zusatzinfo
ich einen Ausschnitt gewickelt um die Fußzeile zu stellen, um einen Kontext zu geben, der templatetags verwendet, nur dieses da draußen hinstellend, wenn es Wert hinzufügt
Sehen Sie unten.
@register.inclusion_tag('home/menus/footer.html', takes_context=True)
def footers(context):
return {
'footers': Footers.objects.first(),
'request': context['request'],
}
Wenn Sie nicht vom Page-Modell geerbt haben, dann gibt es wirklich keine Wagtail-spezifische Informationen zu dem, was Sie zu tun versuchen. Die Wagtail-Dokumentation deckt das nicht ab - Sie schreiben nur eine einfache Django-Ansicht . Wenn Sie mit dem Schreiben von Django-Ansichten nicht vertraut sind, beginnen Sie hier: https://docs.djangoproject.com/de/1.11/intro/tutorial01/ – gasman
Gibt es einen besseren Weg, es mit Bachstelze selbst zu tun? – sqwale
Nein, wahrscheinlich nicht.Wagtail wurde entwickelt, um mit Djangos Feature-Set zusammen zu arbeiten, und nicht um eine Ebene darüber zu sein. Es gibt viele Dinge, bei denen Django sehr gut ist, und das Bearbeiten von Einsendungen und das Eintragen in eine Datenbank ist einer von ihnen ... in diesen Fällen ist die Arbeit direkt mit Django absolut richtig. – gasman