Quiero hacer que admin add-form sea dinámico. Quiero agregar pocos campos de formulario dependiendo de la configuración en el objeto relacionado.Formularios dinámicos en django-admin
tengo algo como esto:
class ClassifiedsAdminForm(forms.ModelForm):
def __init__(self,*args, **kwargs):
super(ClassifiedsAdminForm, self).__init__(*args, **kwargs)
self.fields['testujemy'] = forms.CharField(label = "test")
Y en admin.py:
class ClassifiedAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
return ClassifiedsAdminForm
Como se puede ver, quiero añadir "testujemy" CharField a admin complemento forma y el cambio -formar. Sin embargo, de esta manera no funciona. ¿Hay alguna manera de agregar campo en init? Está funcionando en vista normal.
Gracias, gran trabajo, me ha ahorrado mucho tiempo averiguarlo :) – fijter
Esto todavía me confunde mucho. Esperaría poder simplemente especificar la clase de formulario en la definición de la clase ModelAdmin. Aunque aprecio que hayas agregado esta respuesta; hay un par de otras preguntas de SO que parecen equivalentes pero que siguen sin respuesta o que no están completas. – rych
Si esto no tiene sentido para usted, lea esto: http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python hasta que lo haga. Django usa metaclases de manera muy interna, particularmente con Modelos y Formas –