Quiero definir mi propia rutina de validación para un campo particular de un modelo de Django. Quiero que se muestre el mensaje de error en el formulario de administrador, pero también quiero que se realice la misma validación si la entidad se guarda con un código python propio. ¿Hay alguna manera de hacerlo sin romper el principio DRY?Validación de campo Django en Modelo y en Admin?
10
A
Respuesta
8
Si desea validar un campo individual, puede write a validator y agregarlo al campo de su modelo.
El validador se ejecutará para el campo cada vez que se llame al método full_clean
del modelo. Se ejecutará cada vez que se valida un formulario modelo (incluido en el administrador de Django), pero no se ejecutará automáticamente cuando se guarde la instancia del modelo: debe llamar al full_clean
manualmente en el código python.
m = MyModel(x=20)
m.full_clean() # may raise ValidationError
m.save()
Si quería forzar el validador para ejecutarse cada vez que se guarda el modelo, entonces se podría reemplazar el método guardar y llamar full_clean
allí. Tenga en cuenta que esto haría que la validación se ejecute dos veces al usar formularios modelo y el administrador django.
Cuestiones relacionadas
- 1. modelo no aparece en django admin
- 2. Personalizar Django admin Campo predeterminado de TabularInline
- 3. Django admin, sección sin "modelo"?
- 4. método clean() en validación de modelo y campo
- 5. Campo oculto en Django Modelo
- 6. Modelo múltipleAdmins/views para el mismo modelo en Django admin
- 7. Django admin, ocultar + signo más en campo de clave externa
- 8. Autor automático en Django admin
- 9. Django: Admin: cambiar el widget del campo en administración
- 10. WMD en Django Admin?
- 11. Validación de formulario en línea en Django
- 12. inlines inversa en Django admin con más de un modelo
- 13. django admin datos de campo de clave externa agregue
- 14. Anular un formulario en Django admin
- 15. Acciones personalizadas en Django Admin
- 16. Django ManyToMany validación del modelo
- 17. A Better Django Admin ManyToMany Widget de campo
- 18. Django admin (y filter_vertical) no funciona
- 19. Reemplazar el mensaje "este campo es obligatorio" en django admin
- 20. Búsqueda textual del campo ForeignKey en Django Admin
- 21. Formularios dinámicos en django-admin
- 22. personalizar seleccionar en django admin
- 23. Creando un campo de solo lectura en Django Admin, basado en el valor de otro campo
- 24. Django 1.4 y NoReverseMatch en/admin/error
- 25. Mostrar modelo URL en admin
- 26. Campo Django modelo predeterminado basado en otro campo en el mismo modelo
- 27. Python-Django ¿Cómo usar django-ajax-uploader en admin?
- 28. forma Django falla la validación en un campo único
- 29. Entrada de fecha europea en Django Admin
- 30. Añadiendo más validación a django admin user add forms