我有一个Django模型如下:
class Topic(models.Model):
name=models.CharField(db_index=True,max_length=30)
categorykey=models.ForeignKey(Category)
class Category(models.Model):
categorykey=models.CharField(db_index=True,max_length=30)
relatedcategories=models.ManyToManyField("Category",symmetrical=False)
类别可以包含相关类别。例如,如果类别是“兽医”,则相关类别可能是“动物”,“医学”等。我想查找某个类别中的所有主题及其相关类别。
我无法弄清楚如何做到这一点,我想我想要这样的事情:
categorykey="Vet"
topics=list(Topic.objects.filter(categorykey__relatedcategories__in=categorykey))
但这只会引发错误。有任何想法吗?
答案 0 :(得分:0)
试试这个:
topics = Topic.objects.filter(categorykey__relatedcategories__categorykey = 'Vet')
或者这个:
vet_category = Category.objects.get(category_key = 'Vet')
topics = Topic.objects.filter(categorykey__relatedcategories = vet_category)
(取决于哪种方式更方便。)