django - template - Redirigir al administrador Guardar
django tutorial (4)
Para agregar a la respuesta de @ DanielRoseman, y NO QUIERES que el usuario sea redirigido cuando eligen Guardar y continuar y no el botón Guardar, entonces podrías usar esta solución.
def response_add(self, request, obj, post_url_continue="../%s/"):
if ''_continue'' not in request.POST:
return HttpResponseRedirect(get_other_app_url())
else:
return super(MyModelAdmin, self).response_add(request, obj, post_url_continue)
def response_change(self, request, obj):
if ''_continue'' not in request.POST:
return HttpResponseRedirect(get_other_app_url())
else:
return super(MyAdmin, self).response_change(request, obj)
¿Cómo puedo redirigir a un usuario a una aplicación diferente en Guardar?
Tengo dos aplicaciones, digamos app1
y app2
. Si un usuario hace clic en Guardar en la app2
, debe redireccionarse a la app1
lugar de a la página predeterminada.
No quiero hacer una forma personalizada.
Para cambiar el destino de la redirección después de guardar en el administrador, debe sobrescribir response_add()
(para agregar nuevas instancias) y response_change()
(para cambiar las existentes) en la clase ModelAdmin
.
Ver el código original en django.contrib.admin.options
.
Y si desea que la gente lo siga ayudando en , debe aceptar las respuestas a sus preguntas.
Ejemplos rápidos para aclarar cómo hacerlo (se encontrarían dentro de una clase ModelAdmin):
from django.core.urlresolvers import reverse
def response_add(self, request, obj, post_url_continue=None):
"""This makes the response after adding go to another apps changelist for some model"""
return HttpResponseRedirect(reverse("admin:otherappname_modelname_changelist"))
def response_change(self, request, obj, post_url_continue=None):
"""This makes the response go to the newly created model''s change page
without using reverse"""
return HttpResponseRedirect("../%s" % obj.id])
Tal vez eche un vistazo a los espacios de nombres de URL ... Probablemente podría usar HttpResponseRedirect + reverse para redirigir al usuario dentro de su método de salvar anulado. Tenga en cuenta que esta es una nueva característica en Django 1.1 y no es compatible con 1.0.x.
http://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces
def change_view (self, request, object_id, extra_context = None):
result = super(mymodeladmin, self).change_view(request, object_id, extra_context)
result[''Location''] = "your location"
return result