【问题标题】:Export a specific data in an app in the django admin to a pdf将django admin中应用程序中的特定数据导出为pdf
【发布时间】:2019-05-27 01:50:38
【问题描述】:

我已经设置了将数据导出为 pdf 格式所需的一切。现在,我的问题是如何向 django 管理员执行此用例。我可以在提供类视图的同时通过操作完成此操作,然后将操作中的特定类视图添加到模型管理员吗?那可能吗?我该怎么做?

这是我的课堂视图

class PdfCarrier(View):

    def get(self, request, carrier_id):
        carrier = Carrier.objects.filter(id=carrier_id).first()
        params = {
        'today': timezone.now(),
        'carrier': carrier,
        'request': request
        }

        response = HttpResponse(content_type='application/pdf')
        response['Content-Disposition'] = "inline; filename=Carrier-Report.pdf"

        html = render_to_string('carrier/carrier_pdf.html', params)
        css = [
            base.BASE_DIR + '/src/css/bootstrap3/css/bootstrap.min.css'
        ]

        HTML(string=html).write_pdf(response, stylesheets=css)
        return response
        # return Render.render('carrier/carrier_print.html', params)

我的网址提供它。

    path('<uuid:carrier_id>/carrier-report.pdf', views.PdfCarrier.as_view(), name="print_carrier"),

【问题讨论】:

    标签: django python-3.x django-admin


    【解决方案1】:

    这是可能的。在您的模型管理类中,将 pdf 路径添加到内置 url 列表中。

    class YourModelAdmin(admin.ModelAdmin):
        def get_urls(self):
            urls = super().get_urls()
            custom_urls = [
                path('<uuid:carrier_id>/carrier-report.pdf', self.pdf_view),
            ]
            return custom_urls + urls
    

    然后像下面这样定义方法pdf_view

    class YourModelAdmin(admin.ModelAdmin):
        ...
        def pdf_view(self, request, carrier_id):
            # do whatever you want
            # and return the response
    

    就是这样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 2015-06-28
      • 1970-01-01
      • 2017-07-18
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多