Wagtail 是一个高度可定制的开源内容管理系统(CMS),它允许开发者通过简单的 Python 代码和 Django 模板来构建复杂的网站。Wagtail 的联系人表单功能是其内置的一部分,可以通过 Wagtail 的表单构建器来创建自定义的联系人表单。
Wagtail 表单构建器:这是一个可视化工具,允许你在 Wagtail 后台创建和管理表单。你可以添加各种字段,如文本框、电子邮件、选择框等,并设置验证规则。
模板:在 Wagtail 中,模板是用来渲染页面内容的 HTML 文件。你可以使用 Django 模板语言来创建动态内容。
以下是一个简单的 Wagtail 联系人表单示例,包括模板的使用:
from django.db import models
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.forms.models import AbstractEmailForm, AbstractFormField
class ContactForm(AbstractEmailForm):
thank_you_text = models.CharField(max_length=255, blank=True)
content_panels = AbstractEmailForm.content_panels + [
FieldPanel('thank_you_text'),
]
class ContactFormField(AbstractFormField):
page = ParentalKey(ContactForm, related_name='form_fields')
在你的 Wagtail 项目中创建一个名为 contact_form.html
的模板文件:
{% extends "base.html" %}
{% block content %}
<h1>Contact Us</h1>
<form action="{% pageurl page %}" method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
{% if form.submitted %}
<p>{{ page.thank_you_text }}</p>
{% endif %}
{% endblock %}
在 Wagtail 后台创建一个新的页面,并选择 ContactForm
作为其内容类型。然后添加所需的表单字段。
问题:表单提交后没有收到邮件。
原因:可能是邮件发送设置不正确,或者 SMTP 服务器配置有误。
解决方法:
settings.py
文件中的邮件发送设置。send_mail
函数测试邮件发送功能。from django.core.mail import send_mail
send_mail(
'Subject here',
'Here is the message.',
'from@example.com',
['to@example.com'],
fail_silently=False,
)
通过以上步骤,你应该能够成功创建并部署一个带有模板的 Wagtail 联系人表单。如果遇到其他问题,建议查看 Wagtail 的官方文档或社区论坛寻求帮助。
领取专属 10元无门槛券
手把手带您无忧上云