【发布时间】:2017-12-16 21:19:02
【问题描述】:
我需要在我的主页底部嵌入一个联系表,这是一个单页应用程序。我遵循了几个关于如何在另一个页面(例如,myportfolio.com/contact)上创建自己的联系表单的教程,这些教程很成功。不幸的是,我无法调整这些结果或找到其他教程,了解如何使该联系表单在显示我所有其他模型数据的同一页面上可见并发挥作用(例如,myportfolio.com)。
我遵循了本教程:https://atsoftware.de/2015/02/django-contact-form-full-tutorial-custom-example-in-django-1-7。我只创建了一个应用程序。
我觉得这应该是一件很常见的事情,这让我觉得我忽略了一些非常明显的事情。
应用中的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像这样进入portfolio/base.html:
base.html
{# {% include "contact_form/contact_form.html" %}#}
{% block contact %}{% endblock %}
在这种情况下,什么都没有出现。但是,如果我注释掉第二行并从第一行中删除 cmets,则会出现提交按钮。
现在我意识到我假设 django-contact-form 将获取此表单并知道如何处理它,就像在 myportflio.com/contact 场景中可以访问它一样。但是,我知道以前通过urls.py文件有对/contact的引用,但是在嵌入到base.html文件的情况下,就没有引用了。
我可以在 HompePage 视图中以某种方式添加表单,类似于将模型数据添加到上下文中吗?
【问题讨论】:
-
只需将表单添加到您的主页并使用模态和 jquery/bootstrap *super simple hack 加载它
-
请告诉我你的views.py以及你在模板中声明表单的HTML部分
-
@hansTheFranz 刚刚添加了它们和一些额外内容。
标签: django django-forms django-templates contact-form django-email