gpt4 book ai didi

django - 将表单添加到 django-flatpages

转载 作者:行者123 更新时间:2023-12-02 00:26:40 25 4
gpt4 key购买 nike

我有一个使用平面页面的联系信息页面。但是我想添加一个表单,允许访问者将他们的电子邮件注册到列表中。但是,如果我发送 URL 来呈现表单 View ,它将没有 flatpages 上下文。在我的电子邮件表单 View 中包含平面页面上下文或将我的表单上下文添加到我的平面页面的最佳方法是什么。


感谢Tommasa Barbugli为解决方案。我现在有:

from django.contrib.flatpages.models import FlatPage
from django.shortcuts import render, get_object_or_404

from canada.bulkmail.models import *

def email(request):
contact_flatpage = get_object_or_404(FlatPage, url='/contact/')
ContactEmailFormSet = modelformset_factory(Contact, formset=ContactEmailForm)
if request.method == 'POST':
formset = ContactEmailFormSet(request.POST)
if formset.is_valid():
contact = formset.save()
else:
formset = ContactEmailFormSet()
return render(request, 'flatpages/default.html', {
"formset": formset,
"flatepage": contact_flatpage,
})

最佳答案

从表单页面 View 返回正确的上下文。

这是发送到 flatpages 模板的上下文(其中 f 是 flatpage 实例)

f.title = mark_safe(f.title)
f.content = mark_safe(f.content)

c = RequestContext(request, {
'flatpage': f,
})

在您看来,您可以轻松地返回一个(未保存的)平面页面实例,其中包含您需要的所有属性。

f = FlatPage()
f.title = ""
f.content = ""
....
c = RequestContext(request, {
'flatpage': f,
})

关于django - 将表单添加到 django-flatpages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8627479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com