2012-02-07 19 views
12

Vorrei aggiungere un pulsante in più alla riga di invio in django. Standard otteniamo "cancella", "salva", "salva e continua a modificare" e "salva e aggiungi un altro". A questo set vorrei aggiungere un altro pulsante che chiamerebbe una funzione sul modello.Come aggiungere pulsante al contesto "submit_row" in django

Per quanto ne so, il modello change_form viene generato in uno degli admin.views. Il contesto submit_row viene passato come contesto.

Desidero modificare il contesto della vista di amministrazione. Dove posso trovarlo nel mio filesystem?

+0

Quando si dice "Dove posso trovarlo nel mio filesytem?" intendi il modello di modifica del modulo di amministrazione? – nabucosound

+0

no intendo la vista che rende changeform.html con submit_row come contesto – jorrebor

+0

Hai risolto questo? Se sì, potresti per favore pubblicare la tua soluzione. – AgDude

risposta

12

Da quello che posso dire, ci sono due file in questione. Il primo è

.../django/contrib/admin/templatetags/admin_modify.py 

che ha la seguente sezione:

@register.inclusion_tag('admin/submit_line.html', takes_context=True) 
def submit_row(context): 
    """ 
    Displays the row of buttons for delete and save. 
    """ 
    opts = context['opts'] 
    change = context['change'] 
    is_popup = context['is_popup'] 
    save_as = context['save_as'] 
    return { 
     'onclick_attrib': (opts.get_ordered_objects() and change 
          and 'onclick="submitOrderForm();"' or ''), 
     'show_delete_link': (not is_popup and context['has_delete_permission'] 
           and (change or context['show_delete'])), 
     '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 and (not save_as or context['add']), 
     'show_save_and_continue': not is_popup and context['has_change_permission'], 
     'is_popup': is_popup, 
     'show_save': True 
    } 

E il secondo è

.../django/contrib/admin/templates/admin/submit_line.html 

che è la seguente:

{% load i18n %} 
<div class="submit-row"> 
{% if show_save %}<input type="submit" value="{% trans 'Save' %}" class="default" name="_save" {{ onclick_attrib }}/>{% endif %} 
{% if show_delete_link %}<p class="deletelink-box"><a href="delete/" class="deletelink">{% trans "Delete" %}</a></p>{% endif %} 
{% if show_save_as_new %}<input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew" {{ onclick_attrib }}/>{%endif%} 
{% if show_save_and_add_another %}<input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" {{ onclick_attrib }} />{% endif %} 
{% if show_save_and_continue %}<input type="submit" value="{% trans 'Save and continue editing' %}" name="_continue" {{ onclick_attrib }}/>{% endif %} 
</div> 

Si può probabilmente solo aggiungi un po 'di html personalizzato al secondo file per visualizzare nuovi pulsanti.

Problemi correlati