Django
Bom dia pessoal,
preciso renderizar um formulario dentro uma página através de um {% include 'contato.html'%}.
Se fosse um "model" criaria um context_processor e persistia os dados, mas não é o caso.
Aparentemente é algo muito simples, mas nao estou achando, o form não é renderizado.
Visto que o fórum tem mais tópicos desde a última visita, vou deixar o fonte para quem quiser.
/contato/ = form renderizado - template é contato.html
/ = nao renderiza - o template é index.html
o include é no "/" template acima.
Braços a todos
urls.py
from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings
from django.views.generic.simple import direct_to_template
admin.autodiscover()
urlpatterns = patterns('',
#administracao
(r'^admin/', include(admin.site.urls)),
#inicial
(r'^$', 'dadalto.gerencia.views.index'),
#contato
(r'^contato/$', 'dadalto.gerencia.views.contato'),
#media
(r'^media/(.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)
views.py
#-- coding: utf-8 --
from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from django.template import RequestContext
from django import forms
from django.core.mail import send_mail
#import dos models
from dadalto.gerencia.models import Categoria, Foto, Imagem
from dadalto.gerencia.forms import *
from django.views.generic.simple import direct_to_template
def index(request):
categorias = Categoria.objects.all().order_by('nome')
return render_to_response(
'index.html',
locals(),
context_instance=RequestContext(request),
)******************************************************************************
def enviar(self):
titulo = 'Mensagem enviada pelo Form'
destino = 'ericolvr@gmail.com'
texto = """
Nome: %(nome)s
E-mail: %(email)s
Mensagem:
%(mensagem)s
""" % self.cleaned_data
send_mail(
subject = titulo,
message = texto,
from_email = destino,
recipient_list = [destino],
)
def contato(request):
if request.method == 'POST':
form = FormContato(request.POST)
if form.is_valid():
form.enviar()
exibe = 'Mensagem enviada!'
form = FormContato()
else:
form = FormContato()
return direct_to_template(request, 'index.html',
extra_context={'form':form})
forms.py
-- coding:utf-8 --
from django import formsclass FormContato(forms.Form):
nome = forms.CharField(max_length='30', required=True)
email = forms.EmailField(label=u'E-mail', required=True)
mensagem = forms.Field(widget=forms.Textarea)
Discussão (2)
Carregando comentários...