Проблемы с related_name с Django - PullRequest
0 голосов
/ 11 ноября 2018

У меня проблемы с 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», но ничего из этого не работает.

Большое спасибо всем, правда. Я застрял и немного разочарован.

...