我有一个使用平面页面的联系人和信息页面。但是,我想添加一个表单,允许访问者将他们的电子邮件注册到一个列表中。但是,如果我发送 URL 来呈现表单视图,它将没有平面页面上下文。在我的电子邮件表单视图中包含平面页面上下文或将表单上下文添加到我的平面页面的最佳方法是什么。
感谢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,
})