choices - django model choice
Explicación de contribute_to_class (1)
Intenté extender el código y encontré un problema. No entiendo una línea de código. Sé el resultado, pero no entiendo cómo sucede y estoy lo suficientemente asustado como para cambiarlo.
La línea de código con la que me he encontrado es esta:
MyGenericRelation().contribute_to_class(model, ''field_name'')
El resultado de este código es un campo con ''field_name'' se agrega al ''modelo'' y de lo que reúno los objetos dentro del campo son una lista de tipo X (parte de MyGenericRelation).
Me pregunto si alguien puede explicar cómo funciona esto.
Como en, ¿por qué obtengo una lista de objetos X adjuntados a ''nombre_campo'' y si tiene que haber relaciones genéricas antes de contribuir_a_clase o usaría un tipo de modelo real, decir ''S'' simplemente dame una lista de Y''s.
Para ser sincero, estoy más interesado en el afecto y la funcionalidad del método contribute_to_class.
Básicamente, para los objetos que tienen un método contribute_to_class
, cuando los agregamos a una clase Model, llamamos contribute_to_class
lugar de setattr
: esto permite a los objetos hacer contabilidad adicional y / o modificar la clase a medida que se agregan. Alex Gaynor tiene una buena explicación aquí: http://lazypython.blogspot.com/2008/11/django-models-digging-little-deeper.html