Python 如何在基于类的视图中使用上下文对象进行查询?

Python 如何在基于类的视图中使用上下文对象进行查询?,python,django,django-views,Python,Django,Django Views,我试图理解基于类的视图,并且在变量方面有困难 class TeacherView(generic.DetailView): model = Teacher context_object_name = 'the_object' template_name = urls['Teacher_detail'] # I declared an array and called urls to store template paths 我想使用模板中要使用的教师变量进行查询。 例

我试图理解基于类的视图,并且在变量方面有困难

class TeacherView(generic.DetailView):
    model = Teacher
    context_object_name = 'the_object'

    template_name = urls['Teacher_detail'] # I declared an array and called urls to store template paths
我想使用模板中要使用的教师变量进行查询。 例如:

并将此Homeworks数组传递给我的模板并使用

至少有人能告诉我具体检查什么吗?我对诸如get\u object、get\u context\u object等函数感到迷茫


提前感谢

您可以在视图中定义函数:

class TeacherView(generic.DetailView):
    model = Teacher
    context_object_name = 'the_object'
    template_name = urls['Teacher_detail']

    def homeworks(self):
        return Homeworks.objects.filter(Teacher=self.object)

您可以在视图中定义函数:

class TeacherView(generic.DetailView):
    model = Teacher
    context_object_name = 'the_object'
    template_name = urls['Teacher_detail']

    def homeworks(self):
        return Homeworks.objects.filter(Teacher=self.object)
您可以通过覆盖上下文数据将作业查询集传递给视图,如下所示

class TeacherView(generic.DetailView):
    model = Teacher
    context_object_name = 'the_object'
    template_name = urls['Teacher_detail']

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["homeworks"] = Homeworks.objects.filter(Teacher=self.object)
        return context
您可以通过覆盖上下文数据将作业查询集传递给视图,如下所示

class TeacherView(generic.DetailView):
    model = Teacher
    context_object_name = 'the_object'
    template_name = urls['Teacher_detail']

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["homeworks"] = Homeworks.objects.filter(Teacher=self.object)
        return context
{% for homework in homeworks %}
    {{ homework }}
{% endfor %}