我如何在 Django ORM 中过滤它

How do I filter this in Django ORM

这是我的models.py

class Category(models.Model):
    name = models.CharField(max_length=200, default='')
    slug = models.SlugField(max_length=100,default='',unique=True)

    def __unicode__(self):
        return self.name


class SubCategory(models.Model):
    category = models.ForeignKey(Category)
    name = models.CharField(max_length=200, default='')
    slug = models.SlugField(max_length=100,default='',unique=True)


class TutorInfo(models.Model):
    user = models.OneToOneField(User)
    name = models.CharField(max_length=255, default='')
    category = models.ManyToManyField(Category, related_name='categories')
    about = models.TextField(default='')


class Course(models.Model):
    user = models.ForeignKey(User)
    category = models.ForeignKey(Category)
    sub_category = models.ForeignKey(SubCategory)
    course_name = models.CharField(max_length=255, default='')

现在我想过滤 TutorInfo,使 sub_category 匹配他们添加的 Course 中的 sub_category。一个Tutor可以有多个Course。是否可以编写这样的查询?如果不是那么请告诉我我应该在 models.py

中做些什么改动

如果 1 是您感兴趣的 sub_category 的 ID,请使用

TutorInfo.objects.filter(user__course__sub_category__id__exact=1)

如果sc是否是sub_category模型实例:

TutorInfo.objects.filter(user__course__sub_category=sc)