这是我的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
与sub_category
添加的Course
相匹配。 Tutor
可以有多个Course
。是否可以编写这样的查询?如果没有,那么请告诉我在models.py
答案 0 :(得分:1)
如果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)