繁体   English   中英

如何使用DetailView编写与Django相关的查询

[英]How do I write Django related queries using DetailView

如何在Django中编写具有其他相关查询的DetailView?

这是我的示例:

class DistributionDetailView(DetailView):
    model = Distribution
    template_name = 'projects/view_distribution.html'

    def get_context_data(self, **kwargs):
        context = super(DistributionDetailView,
                        self).get_context_data(**kwargs)
        context['weekly_attendance'] = WeeklyAttendance.objects.filter(
            distibution_name=Distribution)
        context['sales_data'] = SalesData.objects.filter(
            distibution_name=Distribution)
        context['theatrical_release'] = TheatricalRelease.objects.filter(
            distibution_name=Distribution)
        return context

Distribution是模型类,您不能在filter()使用它。 get_context_data方法,您可以访问当前对象self.object ,例如:

context['weekly_attendance'] = WeeklyAttendance.objects.filter(
        distibution_name=self.object)

您可以在大多数通用视图中使用self.object访问对象:

class DistributionDetailView(DetailView):
    model = Distribution
    template_name = 'projects/view_distribution.html'

    def get_context_data(self, **kwargs):
        context = super(DistributionDetailView,
                        self).get_context_data(**kwargs)
        context['weekly_attendance'] = WeeklyAttendance.objects.filter(
            distibution=self.object)
        context['sales_data'] = SalesData.objects.filter(
            distibution=self.object)
        context['theatrical_release'] = TheatricalRelease.objects.filter(
            distibution=self.object)
        return context

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM