2010-02-05 6 views
6

¿Hay alguna manera de tener tanto "guardar como" como "guardar y agregar otro" en el sitio de administración de django?"Guardar como" y "Guardar y agregar otro" en Admin

+0

¿cómo lo haría guardar como? cada forma guarda un nuevo objeto y vuelve a la lista (guardar), guarda un nuevo objeto y vuelve al formulario de objeto nuevo en blanco (guardar y agregar otro), o guarda y permanece en la página de edición de ese objeto (guardar y continuar editando). –

+0

Si coloca save_as = True en su admin.py, obtiene el botón Guardar como. Pero lo que hace es reemplazar el guardado y agregar otro botón con un guardar como. Pero quiero poder tener las dos opciones. – Vitor

Respuesta

1

que lograron resolverlo reemplazando el comportamiento predeterminado en admin_modify.py (this esta publicación me ayudó pero en realidad no funcionó para mí)

Esta es una modificación del código fuente original de django 1.6. Colocarlo en /app/templatetags/admin_modify.py (no se olvide de importarlo en /app/templatetags/__init__.py)

from django.contrib.admin.templatetags import admin_modify 

@admin_modify.register.inclusion_tag('admin/submit_line.html', takes_context=True) 
def submit_row(context): 
    opts = context['opts'] 
    change = context['change'] 
    is_popup = context['is_popup'] 
    save_as = context['save_as'] 
    ctx = { 
     'opts': opts, 
     'show_delete_link': (not is_popup and context['has_delete_permission'] 
           and change and context.get('show_delete', True)), 
     'show_save_as_new': not is_popup and change and save_as, 
     'show_save_and_add_another': context['has_add_permission'] and 
          not is_popup, 
     'show_save_and_continue': not is_popup and context['has_change_permission'], 
     'is_popup': is_popup, 
     'show_save': True, 
     'preserved_filters': context.get('preserved_filters'), 
    } 
    if context.get('original') is not None: 
     ctx['original'] = context['original'] 
    return ctx 

admin_modify.submit_row = submit_row 

El código fuente tenía:

'show_save_and_add_another': context['has_add_permission'] and 
       not is_popup and (not save_as or context['add']), 
+0

Tengo que cambiar el archivo .../django/contrib/admin/templates/admin/submit_line.html también (para ver el botón) y escribir "de admin_modify import *" en/ /templatetags/__init__.py y debería trabajo o me perdí algo? – Izzy

Cuestiones relacionadas