«Объект« ReverseManyToOneDescriptor »не имеет атрибута« все »» - PullRequest
0 голосов
/ 25 сентября 2018

Я сам нашел ответ, но подумал, что этот вопрос может быть полезен другим:

Я получал следующую ошибку, когда звонил:

Schema.objects.all() 

или

Schema.objects.filter(url=some_url)

или аналогичный ..

Ошибка: «Объект« ReverseManyToOneDescriptor »не имеет атрибута« все »»

class Schema(models.Model):

    label = models.TextField()
    description = models.TextField()
    url = models.URLField(unique=True)

    def __str__(self):
        return self.label

    class Meta:
        app_label = 'metadata'


class Object(models.Model):
    label = models.TextField()
    description = models.TextField()
    # related name should not be objects, because that will cause problems
    schema = models.ForeignKey(
        Schema, related_name='objects', on_delete=models.CASCADE)

    def __str__(self):
        return "%s.%s" % (self.schema.label, self.label)

    class Meta:
        app_label = 'metadata'

1 Ответ

0 голосов
/ 25 сентября 2018

Проблема состоит в том, что related_name не может быть "объектами", оно конфликтует с Schema.objects

, поэтому переименование related_name, например:

class Object(models.Model):
    label = models.TextField()
    description = models.TextField()
    # related name should not be objects, because that will cause problems
    schema = models.ForeignKey(
        Schema, related_name='object_list', on_delete=models.CASCADE)

    def __str__(self):
        return "%s.%s" % (self.schema.label, self.label)

    class Meta:
        app_label = 'metadata'

, решило проблему для меня.

...