DjangoのForeignKeyを介して関連する2つのモデルを入手しました。(私はDjango 1.3を使用しています)
Class Person(models.Model):
# some fields here like name, gender, etc...
Class Course(models.Model):
# some fields here
contact = models.ForeignKey(Person, blank=True, null=True)
コースの管理者変更リストビューで、ForeignKeyの連絡先でコースをフィルタリングできるようにしたいと思います。admin.pyで私は得ました:
class CourseAdmin(admin.ModelAdmin):
list_filter = ('contact',)
これは非常にうまく機能します。利用可能なすべての連絡先でコースをフィルタリングできます。ここで、実際にコースが添付されている連絡先のみを表示したいと思います。私はここでSOについて読み、カスタムFilterSpecを作成してCustomFiltersを実装します。連絡先の選択肢を表示するために使用されるクエリセットをさらにフィルタリングするだけでよいので、これが正しい方向であるかどうかはわかりません。
シェルでは、これによって目的のクエリセットを取得します。
contacts=Person.objects.filter(course__in=Course.objects.all()).distinct()
1.4でこれを簡単に達成できることはすでに読みましたが、まだ1.3にバインドされています。誰かが私を正しい方向に向けてくれませんか?ありがとうございました!