2011-12-24 2 views
2

У меня есть контактная информация & info page, которая использует flatpages. Однако я хочу добавить форму, которая позволяет посетителям подписывать свои письма до списка. Однако, если я отправлю URL-адрес для отображения вида формы, он не будет иметь контекст flatpages. Каков наилучший способ включить контекст flatpages в мой вид электронной почты или добавить мой контекст формы к моей странице.Добавить форму для django-flatpages


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, 
    }) 

ответ

2

Возврат правильного контекста из вида страницы формы.

Это контекст отправляется шаблон flatpages' (где F является flatpage экземпляр)

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

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

на ваш взгляд, вы можете легко вернуть (несохраненные) flatpage экземпляр со всеми ATTRS вам нужно.

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

Спасибо! Это то, что я собирался делать в любом случае. –

0

Если вы собираетесь использовать формы, то вам не нужно использовать flatpage - использовать обычный вид с шаблоном flatpage и RequestContext в качестве контекста.

 Смежные вопросы

  • Нет связанных вопросов^_^