【问题标题】:How to filter by field of field (multi level relationship) in django admin?如何在 django admin 中按字段(多级关系)过滤?
【发布时间】:2015-08-28 22:39:44
【问题描述】:

这样的模型设计:

class School(models.Model):
    name = models.CharField(max_length=50)

class Grade(models.Model):
    name = models.CharField(max_length=10)
    school = models.ForeignKey(School)

class Student(models.Model):
    name = models.CharField(max_length=100)
    grade = models.ForeignKey(Grade)

由于Student 对象与School 对象没有直接关系,我如何过滤 django-admin 以仅显示来自选定school 的学生?

【问题讨论】:

标签: python django django-models django-admin


【解决方案1】:
school_name = "your school name"
Students_in_school = Student.objects.filter(grade__school__name = school_name)

【讨论】:

  • 作为一个新人,需要一些时间来弄清楚grade__school__name在做什么。但它有帮助,谢谢
  • 当模型中有外键时,Django 会自动为你创建一个关系模型。在学生模型中的“等级”指向模型等级,在侧面等级中的“学校”指向模型学校一旦您调用 Grade__school__name django 将为您加入三个模型
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 2022-08-14
  • 2019-07-06
  • 2015-02-22
  • 1970-01-01
  • 2011-02-27
  • 2012-04-28
  • 1970-01-01
相关资源
最近更新 更多