Al agregar la clase de modelo a models.py en Django, ¿por qué no usamos self con las variables de campo que definimos? No debería ser que el uso de variables de campo propio los convierte en variables de clase, lo que "puede" causar un problema.Usando self en Django Clases de modelo
Respuesta
Django usa metaclasses para crear la clase real en función de la definición de clase que proporcione. En resumen, al crear una instancia de su clase de modelo, la metaclase se ejecutará a través de las definiciones de campo de su modelo y devolverá una clase correspondiente con los atributos apropiados.
Para responder a su pregunta directamente, el uso de variables de clase en lugar de variables de instancia (object.self
) permite que la metaclase inspeccione los atributos de clase sin tener que crear una instancia primero.
Para obtener más información, echar un vistazo a the source y los siguientes documentos:
Me hice una pregunta similar hace 4 años, así que me metí en el código 'django/db'. Fue esclarecedor en varios niveles; es una especie de clase maestra en el uso de metaclases. –
- 1. clases desacoplamiento de dominio de las clases Django Modelo
- 2. Usando class << self, ¿cuándo usar clases o módulos?
- 3. Reordenando campos en Django modelo
- 4. Modelo Django Encuesta
- 5. ¿Por qué necesitamos "var self = this" en clases en Javascript?
- 6. uso de la súper función de pitón en django modelo
- 7. ChoiceField en Django modelo
- 8. Django modelo: eliminar() no provocó
- 9. Django/Python Referencia de modelo circular
- 10. Usando el método de self-class
- 11. modelo django en create use __init__?
- 12. Columnas ordenando en el modelo de Django
- 13. Django: vistas paramétricas basadas en clases
- 14. Cómo obtener un objeto de modelo usando un cordón nombre del modelo en Django
- 15. Conéctese al modelo de usuario en Django
- 16. Python/Django: ¿Agregar métodos de modelo personalizados?
- 17. importación de modelo de Django
- 18. Usando [self method] o @selector (method)?
- 19. Mejor práctica de Django: número de clases de modelo por estructura de archivo/directorio
- 20. Campo oculto en Django Modelo
- 21. Usando gravatar en django
- 22. Django Reserva de la aduana Modelo
- 23. Variables de instancia de modelo django para uso transitorio
- 24. Modelo múltipleAdmins/views para el mismo modelo en Django admin
- 25. reserva de la aduana método en el modelo - django
- 26. Vista basada en clases de Paginate en Django
- 27. Django ManyToMany validación del modelo
- 28. polimorfismo modelo django con herencia proxy
- 29. Usando @synchronized (self) {...} en la función de clase
- 30. MVC Validación utilizando anotaciones de datos: ¿clases de modelo o clases de modelo de vista?
... ¿qué? ¿Puedes agregar un par de ejemplos de lo que quieres decir? Porque no estoy seguro de que te sigo ... – eternicode