¿Es típico separar la validación de entrada de la validación a nivel de modelo en los proyectos de Django? Por ejemplo, validar que un nombre de usuario se ajusta a los criterios de nomenclatura sería la validación de entrada y verificar que el usuario no esté ya en la base de datos sería una validación a nivel de modelo.Separación de entrada de formulario y validación de modelo en Django?
He estado buscando el código de un compañero de trabajo, y ponen ambos tipos de validación en una clase de formulario (en forms.py). ¿Es esta la configuración típica, o es más común que la validación a nivel de modelo aparezca en el modelo o vista?
¿O hay una mejor manera de acercarse a esto-- como usar un ModelForm
? Soy bastante nuevo para Django e intento aprender cuál es el patrón recomendado para esta situación.
Estoy de acuerdo. La mayoría de las cosas realmente pueden considerarse como validación "a nivel de modelo". Realmente no desea que un nombre de usuario llegue a la base de datos si no coincide con los criterios de nomenclatura. Hay algunas cosas que variarán de una a otra, y es allí donde quiere validar en el formulario en sí. Es posible que tenga un modelo de archivo elegante que contenga el tipo de archivo en un campo. Cualquier tipo está bien en el nivel de modelo, pero en el formulario de carga de fotos que desea limitarlo a png y jpeg, por ejemplo. – dokkaebi