我如何在 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)
这是我的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)