Código:
En el Admin.pyclass Serie(models.Model): nombre=models.CharField("Nombre de la Serie",max_length=100,unique=True) #Otros campos def __str__(self): return self.nombre class Temporada(models.Model): serie=models.ForeignKey(Serie, verbose_name="Selecciona Una Serie") nombre=models.CharField("Nombre de la Temporada",max_length=100) #Otros campos def __str__(self): return self.nombre class Capitulo_Serie(models.Model): serie=models.ForeignKey(Serie, verbose_name="Selecciona Una Serie") temporada=models.ForeignKey(Temporada, verbose_name="Nombre Temporada") nombre=models.CharField("Capitulo",max_length=100) #Otros campos def __str__(self): return self.nombre
Código:
Lo que necesito es que filtre en capitulo_serie solo las temporadas correspondientes a la serie que tengo abierta en ese momento , por ejemplo tengo esto:class temporada_inline(admin.TabularInline): model=models.Temporada extra=1 class capitulo_inline(admin.TabularInline): model=models.Capitulo_Serie extra=1 def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == 'temporada': kwargs["queryset"] = models.Temporada.objects.filter(serie=request.user) return super(capitulo_inline, self).formfield_for_foreignkey(db_field, request, **kwargs) class temporada_admin(admin.ModelAdmin): inlines=[ temporada_inline, capitulo_inline, ] admin.site.register(models.Serie,temporada_admin)
serie1
- temporada1-serie1
- temporada2-serie1
- temporada3-serie1
- temporada1-serie2
- temporada2-serie2
- temporada3-serie2
y voy a modificar en el admin a serie1 , en el select temporada (que es un foreingkey a el model Temporada) de capitulo_serie , que me cargue solamente las temporadas de serie1 , lo intente hacer de esta manera:
Código:
pero me carga siempre las temporadas de Serie1 , asi me valla a modificara serie2 me carga las temporadas de serie1 :def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == 'temporada': kwargs["queryset"] = models.Temporada.objects.filter(serie=request.user) return super(capitulo_inline, self).formfield_for_foreignkey(db_field, request, **kwargs)
probe cambiando el valor de esta linea por
Código:
Funciona pero la idea no es poner el id manualmente , sino que identifique que serie tengo abierta y tome ese id.kwargs["queryset"] = models.Temporada.objects.filter(serie=2)#el id de la serie
La verdad no exactamente k deberia de colocar para que me filtre las temporadas dependiendo de la serie , ya he visto temas similares pero aun no le he podido resolver