如何使此模型查询工作?

时间:2014-02-18 16:15:11

标签: django

我正在尝试找到一个能够返回具有特定ID的对象的解决方案。

我有这些模特:

class ModelB(models.Model):
    customid = models.CharField(max_length=32)
    <-- data -->
class ModelA(models.Model):
    b = models.ForeignKey(ModelB, blank=True, null=True, related_name="Bs")

我的观点中有这个代码:

a = ModelA.objects.filter(ModelB__customid = Bobject_id)

我希望能够找到具有给定B对象的所有A对象。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

a_objects = ModelA.objects.filter(b__customid=Bobject_id)

查看creating queries that span relationships

的文档

答案 1 :(得分:0)

假设您有ModelB的实例,最简单的方法是遵循相反的关系:

a_objects = b_object.Bs.all()

这使用您设置的显式related_name:没有它,它将是b_object.modela_set.all()。请注意,您的related_name应该是“As”,而不是“Bs”,因为它指的是与该B相关的A对象。