Existe esta línea en el tutorial de Django, Escribiendo su primera aplicación Django, parte 1 :
p.choice_set.create(choice='Not much', votes=0)
¿Cómo se choice_set
llama a la existencia y qué es?
Supongo que la choice
parte es la versión en minúsculas del modelo Choice
utilizado en el tutorial, pero ¿qué es choice_set
? ¿Puedes elaborar?
ACTUALIZACIÓN: Basado en la respuesta de Ben , encontré esta documentación: Siguiendo las relaciones "hacia atrás" .
Respuestas:
Creó una clave foránea en la
Choice
que se relaciona cada una con aQuestion
.Entonces, cada uno
Choice
tiene explícitamente unquestion
campo, que usted declaró en el modelo.El ORM de Django también sigue la relación al revés
Question
, generando automáticamente un campo en cada instancia llamadafoo_set
dondeFoo
está el modelo con unForeignKey
campo para ese modelo.choice_set
es unRelatedManager
que puede crear conjuntos de consultas deChoice
objetos relacionados con laQuestion
instancia, por ejemploq.choice_set.all()
Si no le gusta el
foo_set
nombre que Django elige automáticamente, o si tiene más de una clave foránea para el mismo modelo y necesita distinguirlos, puede elegir su propio nombre superior utilizando elrelated_name
argumento paraForeignKey
.fuente
RelatedManager
que puede crear conjuntos de consultas.