2010-02-05 13 views
6

C'è un modo per avere "salva come" e "salva e aggiungi un altro" nel sito di amministrazione di django?"Salva come" e "Salva e aggiungi un altro" nell'Amministratore

+0

come faresti salvare come? ogni modulo salva un nuovo oggetto e torna all'elenco (salva), salva un nuovo oggetto e torna al modulo nuovo oggetto vuoto (salva e aggiunge un altro), oppure salva e rimane nella pagina di modifica dell'oggetto (salva e continua a modificare). –

+0

Se metti save_as = True nel tuo admin.py ottieni il pulsante salva come. Ma ciò che fa è sostituire il salvataggio e aggiungere un altro pulsante con un salvataggio come. Ma voglio essere in grado di avere le due scelte. – Vitor

risposta

1

sono riuscito a risolverlo sovrascrivendo il comportamento predefinito in admin_modify.py (this questo post mi ha aiutato ma in realtà non ha funzionato per me)

Questa è una modifica del codice sorgente originale di django 1.6. Mettere in /app/templatetags/admin_modify.py (non dimenticate di importarlo in /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 

Il codice sorgente aveva:

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

Devo cambiare il file .../django/contrib/admin/templates/admin/submit_line.html (per vedere il pulsante) e digitare "da admin_modify import *" in/ /templatetags/__init__.py e dovrebbe lavoro o mi sono perso qualcosa? – Izzy

Problemi correlati