Djangoで階層ビューを作成しようとしていますが、私はQuerySetsを効果的に使用する方法を理解するのに苦労しています。コースの各グループは、div要素に包まれて、私の見解ではDjangoで階層ビューを作成する
をスタイリングなどられる
Main Course 1 --- Child Course 1
--- Child Course 2
Main Course 2 --- Child Course 3
--- Child Course 4
:
は私が最終的にを目指してることは、このようにコースを表示するHTMLページです。
class HierarchyView(generic.ListView):
template_name = 'curriculum/hierarchy.html'
def get_queryset(self):
return Offering.objects.all()
def get_context_data(self, **kwargs):
context = super(HierarchyView, self).get_context_data(**kwargs)
context['main'] = self.get_queryset().filter(course_type='M')
context['sub'] = self.get_queryset().filter(parent_code__in=context['main'])
return context
募集モデルはようparent_codeはトンのような自己参照の外部キー(つまり、すべてのコースは、他の子にすることができます)、ある設定されている:私は、次のしているPYファイル彼:
...
parent_code = models.ForeignKey(
'self',
null=True,
blank=True,
on_delete=models.SET_NULL)
...
そして、私のHTMLテンプレートで
は、私が持っている: これは、その結果どのような{% for mainoffering in main %}
<div>
<div>{{ mainoffering.course_name }}</div>
{% for offering in sub %}
<div>{{ offering.course_name }}</div>
{% endfor %}
</div>
{% endfor %}
、しかし、すべての子のコースは、彼らが実際にあるかどうかにかかわらず、すべてのメインコースの下に表示されていることですそのコースの子供たちは、私が何をしているのかは明らかではありません。
私はまだDjangoでロープを学んでいます。私は何が必要なのかを普通の英語で説明するものを見つけるのに苦労しています。助けてください!
あなたが必要なものはdjango-mpttです – e4c5