Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/10/2013, 01:58
MacintoshD
 
Fecha de Ingreso: mayo-2012
Ubicación: Mexico
Mensajes: 82
Antigüedad: 12 años, 6 meses
Puntos: 7
Django GFK (ContentType)

Hola, estoy tratando de entender un poco GenericForeignKey pero hay cosas que no me entran, he escrito el siguiente modelo como parte de ejemplo no es nada serio, pero mi pregunta consiste lo básico que se puede hacer con una relación tipo ForeignKey: {{ film.info_set.all }} y algo por el estilo pero en GFK no entiendo como hacerlo después de leer y no entender.

Código Python:
Ver original
  1. class Film(models.Model):
  2.     title = models.CharField(max_length=100)
  3.     original_title = models.CharField(max_length=100,blank=True,null=True)
  4.     slug = models.SlugField(max_length=100, unique=True)
  5.     content = HTMLField(blank=True)
  6.  
  7.     # I'm tried this, but not work, 'Film' object has no attribute 'info_set'
  8.     # Por ejemplo como puedo hacer esto que funcione ya sea a nivel de modelo o template
  9.     def quality(self):
  10.         return [q.get_audio_display() for q in self.info_set.order_by("audio").distinct("audio")]
  11.  
  12. class Serie(models.Model):
  13.     title = models.CharField(max_length=100)
  14.     original_title = models.CharField(max_length=100,blank=True,null=True)
  15.     slug = models.SlugField(max_length=100, unique=True)
  16.     content = HTMLField(blank=True)
  17.  
  18. class Info(models.Model):
  19.     content_type = models.ForeignKey(ContentType)
  20.     object_id = models.PositiveIntegerField()
  21.     content_object = generic.GenericForeignKey('content_type', 'object_id')
  22.    
  23.     youtube_embed = models.IntegerField(choices=CHOICES_QUALITY)
  24.     audio = models.CharField(max_length=50,choices=CHOICES_AUDIO)

Gracias.