首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery SlideOut Box中的摇尾形式

jQuery SlideOut Box中的摇尾形式
EN

Stack Overflow用户
提问于 2016-10-19 14:56:16
回答 1查看 109关注 0票数 0

我正在创建一个使用Wagtail CMS的网站。我的客户端希望在用户单击按钮时出现在jQuery SlideOut Box中的表单。我不确定这样做的最佳方法;我在Contact页面上也有一个单独的联系人表单,form_page.html模板位于/contact文件夹中。我将在哪里定义jQuery框的表单,该框将出现在站点的每一页上?该代码当前驻留在footer.html模板文件中的/site_name/templates/includes中。

在Wagtail中有什么方法可以做到这一点,还是应该使用一个单独的Django表单来完成呢?

编辑:看起来我可能需要一个片段。这是该走的路吗?

任何帮助都将不胜感激。提前谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2016-10-19 19:37:52

这里不太可能有代码片段的帮助,因为wagtailforms模块是围绕页面树中某个特定URL中的某个页面存在的表单的概念而设计的。即使表单本身不存在于任何特定的页面上,也必须有一个定义良好的URL才能将表单发布到--并且代码段没有URL。

如果您不需要在Wagtail admin中定义表单字段,那么普通Django表单(投递到普通Django视图)是最简单的路径。为了使表单对象在每个页面上都可用,我建议在myapp/templatetag/myapp_tags.py中定义一个自定义的包含标签,如下所示:

代码语言:javascript
复制
from django import template
register = template.Library()

@register.inclusion_tag('myapp/tags/contact_form.html')
def contact_form():
    form = ContactForm()
    return {'form': form}

然后,在模板中,{% load myapp_tags %}{% contact_form %}

如果您确实希望表单在Wagtail管理中是可配置的,则可以使用上述方法和wagtailforms模块的组合,利用表单页面模型提供的get_form方法。首先,在站点的某个地方使用wagtailforms设置一个表单页面--它可能是用户期望访问的一个实际页面,也可能不是一个页面(但它确实需要发布并在某个地方存在)。然后,包含标记代码变成:

代码语言:javascript
复制
@register.inclusion_tag('myapp/tags/contact_form.html')
def contact_form():
    form_page = ContactFormPage.objects.get(slug='contact-us')
    form = form_page.get_form()
    return {'form_page': form_page, 'form': form}

(在contact_form.html中,您可以使用{% pageurl form_page %}作为表单的action属性,以便将其发布到您设置的表单页面。)

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40134978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档