Python 使用与预取相关的多对多表,而不使用多对多字段
我正在使用Django 1.8。我有三张桌子Python 使用与预取相关的多对多表,而不使用多对多字段,python,django,Python,Django,我正在使用Django 1.8。我有三张桌子 A(models.Model): name = models.CharField(max_length=128) B(models.Model): name = models.CharField(max_length=128) AB(models.Model): a = models.ForeignKey(A) b = models.ForeignKey(B) 是否可以使用预回迁相关数据从AB获取所有A及其对应行
A(models.Model):
name = models.CharField(max_length=128)
B(models.Model):
name = models.CharField(max_length=128)
AB(models.Model):
a = models.ForeignKey(A)
b = models.ForeignKey(B)
是否可以使用预回迁相关数据从AB获取所有A及其对应行?可能是这样的:
A.objects.filter(name='abc').prefetch_related('AB')
您应该使用相关名称,而不是类名本身。像这样的东西可以完成任务:
A.objects.filter(name='abc').prefetch_related('ab_set')
您应该使用相关名称,而不是类名本身。像这样的东西可以完成任务:
A.objects.filter(name='abc').prefetch_related('ab_set')
你能把你的问题翻过来吗
AB.objects.filter(a_uname='abc')…
你能翻转你的查询吗AB.objects.filter(a_uname='abc')…
AttributeError:在预订对象上找不到'AB_set','AB_set'是一个无效的参数,无法预取与您相关的内容()。您是否用您的实际型号名称替换了AB_set
?我用型号名称替换了AB-所有小写字母。您是否更改了与字段相关的名称?是的。我发现了我的错误。我用错了型号名称。代替ab
我添加了abs
:)AttributeError:在预订对象上找不到'ab_set',ab_set'是一个无效的参数,无法预回迁相关的()您是否将ab_set
替换为您的实际型号名称?我将ab替换为我的型号名称-所有小写字母。您是否更改了与字段相关的名称?是的。我发现了我的错误。我用错了型号名称。我添加了abs
,而不是ab
:)