我自己找到了答案,但认为这个问题可能对其他人有益:
每当我打电话时,我都会收到以下错误:
Schema.objects.all()
或
Schema.objects.filter(url=some_url)
或类似的..
错误:“'ReverseManyToOneDescriptor'对象没有属性'all'”
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'
最佳答案
问题是 related_name 不能是“objects”,它与 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'
解决了我的问题。
关于python - "' 反向ManyToOneDescriptor ' object has no attribute ' 全部 '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52499969/