エンティティを説明するために、ListViewにカスタムフィールドを追加しようとしています(テンプレート内で使用できるように)。しかし、意外にも、それをする。 に各コンテキストのオブジェクトを追加するにはどうすればよいですか? self.object_list
は、リスト全体を返します。これは反復的に直感的に反復され、この余分なフィールドを追加します。ここでListView内の各オブジェクトにカスタムフィールドを追加する
は、コードの簡易版です:テンプレートで
class AreaWiseSchoolsView(ListView):
template_name = 'search/area.html'
paginate_by = 15
def get_queryset(self):
qs = School.objects.filter(area__name=self.kwargs['areaname'])
return qs
def get_context_data(self, **kwargs):
school_type_description = ""
context = super(AreaWiseSchoolsView, self).get_context_data(**kwargs)
# need code here to add the custom field to each object in the list
# school = self.something
# if school.area.filter(pk=9).exists():
# school_type_description = "Some description for Area 9"
# elif school.school_type == 'ND':
# school_type_description = "Some description for ND"
# elif school.school_type == 'MA':
# org_type_description = "Some description for MA"
context['school_type_description'] = school_type_description
return context
、私は次のことを行うことができる必要があります。
{% for school in object_list %}
{{school.school_type_description}}
{% endfor %}
また、上記を行うための簡単な方法がありますget_context_data()をオーバーライドする代わりに?
この種のものは最高の学校のモデル自体の方法として行われることになります。 –