2010-02-05 5 views
6

Existe-t-il un moyen d'avoir à la fois "Enregistrer sous" et "Enregistrer et ajouter un autre" dans le site d'administration django?"Enregistrer sous" et "Enregistrer et ajouter un autre" dans Admin

+0

comment feriez-vous économiser? chaque formulaire enregistre un nouvel objet et retourne à la liste (enregistrer), enregistre un nouvel objet et retourne au formulaire d'objet vierge (enregistrez et en ajoute un autre), ou enregistre et reste sur la page d'édition de cet objet (enregistrer et continuez l'édition). –

+0

Si vous mettez save_as = True dans votre admin.py vous obtenez le bouton Enregistrer sous. Mais ce que cela fait est de remplacer la sauvegarde et ajouter un autre bouton par une sauvegarde sous. Mais je veux pouvoir avoir les deux choix. – Vitor

Répondre

1

j'ai réussi à le résoudre en remplaçant la comportement par défaut dans admin_modify.py (this ce poste m'a aidé mais n'a pas réellement travaillé pour moi)

Ceci est une modification du code source d'origine de django 1.6. Placez-le dans /app/templatetags/admin_modify.py (ne pas oublier de les importer dans /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 

Le code source avait:

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

Je dois changer le fichier .../django/contrib/admin/templates/admin/submit_line.html aussi (pour voir le bouton) et taper "from admin_modify import *" dans/ /templatetags/__init__.py et il devrait travailler ou j'ai raté quelque chose? – Izzy

Questions connexes