2012-04-30 11 views
7

He leído acerca de la característica can_add_related aquí: https://code.djangoproject.com/ticket/9071cómo utilizar can_add_related en Django administración

Intenté usar de esta manera:

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

Pero esto arroja un TypeError y no sé cómo resolver esto

¿Puede alguien señalarme en la dirección correcta?

Gracias.

+0

¿Se puede publicar la trazabilidad? – garnertb

+0

sí, puede verlo aquí: http://dpaste.com/740431/ – normic

Respuesta

11

Esta es, probablemente, llegando tarde. Pero para otros lectores referencia,

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

para todos los que lo intenten, esto simplemente funciona, incluso con Django 1.7 - ** pero ** no con Inlines. Para ellos terminé sobrescribiendo los widgets, como se explica por @Seether, mira aquí: [link] (http://stackoverflow.com/questions/26425818/django-1-7-removing-add-button-from-inline -form) – normic

+0

Consulte esta respuesta a la pregunta relacionada en el comentario de @normic para una solución mucho más conciso para inlines (usando get_formset en lugar de get_form) http://stackoverflow.com/a/37558444/1302095 – jenniwren

2

can_add_related parece ser an attribute on the widget, no el campo, a fin de tratar:

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

Gracias por su pista, pero esto da como resultado el mismo error. – normic

Cuestiones relacionadas