Me gustó la idea de utilizar el marco de mensaje, pero el ejemplo en la documentación de django no funciona para mí en el contexto de la pregunta anterior.
Lo que realmente me molesta, es la línea en la documentación de Django:
If you're using the context processor, your template should be rendered with a RequestContext. Otherwise, ensure messages is available to the template context.
que es incomprensible para un novato (como yo) y necesita amplió, de preferencia con lo que esas 2 opciones parecen .
Solo pude encontrar soluciones que requerían renderización con RequestContext ... que no responde a la pregunta anterior.
Creo que he creado una solución para la segunda opción a continuación:
Esperamos que esto ayudará a alguien más.
== == urls.py
from django.conf.urls.defaults import *
from views import *
urlpatterns = patterns('',
(r'^$', main_page, { 'template_name': 'main_page.html', }, 'main_page'),
(r'^test/$', test),
== == viewtest.py
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
def test(request):
messages.success(request, 'Test successful')
return HttpResponseRedirect(reverse('main_page'))
== viewmain.== py
from django.contrib.messages import get_messages
from django.shortcuts import render_to_response
def main_page(request, template_name):
# create dictionary of items to be passed to the template
c = { messages': get_messages(request) }
# render page
return render_to_response(template_name, c,)
main_page.html == ==
{% block content %}
{% if messages %}
<div>
{% for message in messages %}
<h2 class="{{message.tag}}">{{ message.message }}</h2>
{% endfor %}
</div>
{% endif %}
{% endblock %}
creo que este problema es bastante común en todos los marcos y no se limita a Django/Python. – Jiri
@Jiri, sí, pero algunos marcos proporcionan soporte para ello. –
codificar el mensaje en la cadena de consulta de la dirección URL está redirigiendo a. debería funcionar en cualquier marco. –