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 に答える