Pregunta

Quiero heredar una clase modelo de un código de terceros. No utilizaré algunos de los campos, pero quiero que mi cliente pueda editar el modelo en Admin. ¿Es la mejor apuesta para esconderlos de Admin o puedo evitar que se creen en primer lugar?

Además, ¿qué puedo hacer si se requiere uno de los campos no deseados? Mi primer pensamiento es anular el método de guardar y simplemente poner un valor predeterminado.

¿Fue útil?

Solución

Si está heredando el modelo, es probable que no sea prudente intentar ocultar o deshabilitar los campos existentes. Lo mejor que probablemente podrías hacer es exactamente lo que sugeriste: anula save () y maneja tu lógica allí.

Otros consejos

Puedes controlar los campos que se pueden editar en admin.

De la documentación de Django:

" Si desea un formulario para el modelo de Autor que incluya solo los campos de nombre y título, debe especificar campos o excluir así:

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)"

http://docs.djangoproject.com/en/dev/ ref / contrib / admin /

En lugar de heredar, considere utilizar formularios personalizados.

  1. Puede eliminar campos de la visualización que aún se encuentran en el modelo.

  2. Puede validar y proporcionar valores predeterminados en el método clean () .

Consulte http : //docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top