1

我有一个 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))

但这只会引发错误。有任何想法吗?

4

1 回答 1

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)

(取决于哪个对您更方便。)

于 2013-04-11T09:40:00.683 回答