我被Django(v1.9.4)搞砸了一下。我创造了两个模型,Foo和 条:
class Foo(models.Model):
name = models.CharField(max_length=100)
class Bar(models.Model):
foo_id = models.ForeignKey(Foo, on_delete=models.CASCADE)
title = models.CharField(max_length=300)
迁移它(sqlite3),片刻之后意识到它应该是
foo而不是foo_id:
foo = models.ForeignKey(Foo, on_delete=models.CASCADE)
我这次用foo再次迁移它,但即使经过这次修正后我也无法使用
f = Foo.objects.filter(pk=1)
f.bar_set.all()
有没有办法解决这个问题?
编辑。 错误消息: 异常类型:AttributeError 异常值:'Foo'对象没有属性'bar_set'
答案 0 :(得分:3)
它不起作用,因为filter
返回QuerySet
(列表),而不是对象。您需要使用get
而不是filter
,因为get
会返回一个对象。
f = Foo.objects.get(pk=1)
f.bar_set.all()