Foros del Web » Programando para Internet » Python »

Django GFK (ContentType)

Estas en el tema de Django GFK (ContentType) en el foro de Python en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/10/2013, 01:58
 
Fecha de Ingreso: mayo-2012
Ubicación: Mexico
Mensajes: 82
Antigüedad: 10 años, 10 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.
  #2 (permalink)  
Antiguo 22/10/2013, 19:16
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 15 años
Puntos: 1329
Respuesta: Django GFK (ContentType)

Checa esto primero: https://docs.djangoproject.com/en/de...ric-relations:

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.     info = generic.GenericRelation('Info')
  7.  
  8.     # I'm tried this, but not work, 'Film' object has no attribute 'info_set'
  9.     # Por ejemplo como puedo hacer esto que funcione ya sea a nivel de modelo o template
  10.     def quality(self):
  11.         return [q.get_audio_display() for q in self.info.order_by("audio").distinct("audio")]


Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: django, funcion, gui, ip
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:18.