2012-04-30 10 views
7

Ho letto sulla funzione can_add_related qui: https://code.djangoproject.com/ticket/9071come utilizzare can_add_related in Django Admin

Ho provato ad utilizzare in questo modo:

def get_form(self, request, obj=None, **kwargs): 
    self.fields['person'].can_add_related = False 
    return super(OperationAdmin, self).get_form(request, obj, **kwargs) 

Ma questo getta una TypeError e non so come risolvere questo

Qualcuno può indicarmi la giusta direzione?

Grazie.

+0

Puoi postare il traceback? – garnertb

+0

sì, è possibile visualizzarlo qui: http://dpaste.com/740431/ – normic

risposta

11

Questo è probabilmente venuta in ritardo. Ma per altri riferimenti di riferimento,

def get_form(self, request, obj=None, **kwargs): 
    form = super(ProductAdmin, self).get_form(request, obj, **kwargs) 
    form.base_fields['category'].widget.can_add_related = False 
    return form 
+1

per tutti quelli che ci stanno provando, questo funziona semplicemente, anche con Django 1.7 - ** ma ** non con Inline. Per loro ho finito col sovrascrivere i widget, come spiegato da @Seether, vedi qui: [link] (http://stackoverflow.com/questions/26425818/django-1-7-removing-add-button-from-inline -form) – normic

+0

Vedere questa risposta alla domanda collegata nel commento di @ normic per una soluzione molto concisa per inline (utilizzando get_formset anziché get_form) http://stackoverflow.com/a/37558444/1302095 – jenniwren

2

can_add_related sembra essere an attribute on the widget, non il campo, in modo da provare:

self.fields['person'].widget.can_add_related = False 
+0

Grazie per il suggerimento, ma questo si traduce nello stesso errore. – normic