У меня проблемы с relate_name на моей модели. В классе «Пилдора» на поле есть ForeignKey: bloque. Я указал имя_отношения, но оно не работает.
У меня есть эти модели:
class Bloque(models.Model):
titulo = models.CharField(max_length=200)
letra = models.CharField(max_length=1)
descripcion = models.CharField(max_length=200)
tema = models.ForeignKey(Tema, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
slug = models.SlugField(max_length=1)
updated_at = models.DateTimeField(auto_now=True)
class Pildora(models.Model):
titulo = models.CharField(max_length=200)
descripcion = RichTextField(max_length=2000, config_name='default')
slug = models.SlugField(max_length=20)
url = models.URLField(max_length=200)
tipo = models.ForeignKey(TipoPildora, on_delete=models.CASCADE)
identificador = models.IntegerField()
pildora_anterior = models.ForeignKey('self', on_delete=models.CASCADE, blank=True, null=True)
bloque = models.ForeignKey(Bloque, on_delete=models.CASCADE, related_name='%(app_label)s_%(class)s_related')
activo = models.BooleanField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
Но когда я использую:
bloque = Bloque.objects.filter(tema__asignatura__slug=kwargs["asignatura"], tema__slug=kwargs["tema"], slug=kwargs["bloque"])
print(bloque.formacion_pildora_related)
Джанго говорит:
AttributeError: 'QuerySet' object has no attribute 'formacion_pildora_related'
Я прочитал django doc, но не могу понять, почему это происходит: S
Что я мог сделать?
PS: в рассматриваемом случае% (app_label) s _% (class) s_related относится к 'formacion_pildora_bloque'. Я поставил фиксированные имена, такие как «pildoras», или даже оставил их без сообщений, чтобы по умолчанию они использовались как «set_pillora», но ничего из этого не работает.
Большое спасибо всем, правда. Я застрял и немного разочарован.