Python Django:向后跟踪关系

Python Django:向后跟踪关系,python,django,orm,Python,Django,Orm,嘿,我有这样的模型: class Galleries(models.Model): creation_date = models.DateTimeField() name = models.CharField(max_length=255, unique=True) gallery_type = models.ForeignKey(Categories) class Categories(models.Model): handle = models.CharField(max_

嘿,我有这样的模型:

class Galleries(models.Model):
  creation_date = models.DateTimeField()
  name = models.CharField(max_length=255, unique=True)
  gallery_type = models.ForeignKey(Categories)

class Categories(models.Model):
  handle = models.CharField(max_length=255, unique=True)

class Values(models.Model):
  category = models.ForeignKey(Categories)
  language = models.CharField(max_length=7)
  category_name = models.CharField(max_length=50)
现在,我只想从画廊开始,了解类别的价值。例如:
galleries=galleries.objects.get(id=1)
。现在我想通过使用这个“图库”对象以某种方式获得这些值。。。使用特定语言获取值会更好。。。我想念Django ORM的技能,所以如果可以的话,请告诉我一些文档或给出一些代码示例。谢谢

galleries = Galleries.objects.get(id=1)
values = galleries.gallery_type.values_set.filter(language='language')
有趣的是,您使用了文档用于引用相关字段查找的确切措辞。我总是觉得这个定义很奇怪,也许是因为他们引用了它

以下关系“向后”


您可能希望使用与选择对象相关的方法,以减少正在进行的查询数量

可以为类别fk中的值模型设置相关名称:

class Values(models.Model):
  category = models.ForeignKey(Categories, related_name="categories")
  language = models.CharField(max_length=7)
  category_name = models.CharField(max_length=50)
现在,您可以通过执行以下操作获得特定语言的值列表

values = gallery.gallery_type.categories.filter(language="language")

谢谢你,伙计!我真的很接近,你纠正了我的逻辑一点!谢谢链接当前已断开。叹气<代码>选择相关的对向后关系没有影响。您无需设置
相关的\u名称
即可访问反向关系-如果不设置,将创建一个默认值,如Yuji所示。如果我没有弄错,选择相关的将对fk to类别产生影响?相关的_名称只是让反向关系更具可读性,imho。但是Yuji的答案是完整的,使用默认值。
values = gallery.gallery_type.categories.filter(language="language")