2010-09-13 9 views
7

Tengo un modelo en el que me gustaría hacer un administrador personalizado change_form que imite el comportamiento de la funcionalidad Agregar usuario de la interfaz de stock de Django Admin. Es decir, quiero una acción de dos pasos en la que el usuario ingrese primero solo una identificación de dispositivo y luego se la lleve a una página donde puede ingresar información en el dispositivo. Similar a la forma en que ingresa primero el nombre de usuario y la contraseña de un usuario y luego completa la otra información en la página siguiente. ¿Algunas ideas?En Django, ¿cómo imito el método de dos pasos de agregar usuarios a través del administrador para mis propios modelos?

Respuesta

7

Finalmente logré encontrar cómo lo hace django. Hay un método response_add redefinido dentro de ModelAdmin. Aquí hay un enlace para el modelo de usuario en la fuente django: django.contrib.auth.admin.py. Se ve así:

def response_add(self, request, obj, post_url_continue='../%s/'): 
    if '_addanother' not in request.POST and '_popup' not in request.POST: 
     request.POST['_continue'] = 1 
    return super(UserAdmin, self).response_add(request, obj, post_url_continue) 

Si añade este método a la clase ModelAdmin, entonces debería funcionar de manera similar.

Eso solo cubre el proceso de salvar dos pasos en el panel de administración, pero las otras funcionalidades como agregar campos adicionales al formulario en el segundo paso también se pueden extraer en la fuente django.

+0

¡Perfecto! He tenido que resolverlo de otra manera por ahora, pero ahora sé cuándo lo necesito la próxima vez. –

+0

¿Terminaste usando esta solución alguna vez? Estoy buscando un ejemplo de trabajo para mi propio proyecto (vea [esta pregunta] (http://stackoverflow.com/questions/39008615/django-using-a-custom-upload-to-function-it-is-possible -to-query-manytomanyfie)) y no soy lo suficientemente experto como para resolverlo solo. – Deleet

Cuestiones relacionadas