Django เรนเดอร์เป็น pdf ด้วยปุ่ม

ฉันมี def ที่เรนเดอร์เป็น pdf พร้อมการดำเนินการบน django-admin

def Print(self, request, obj):
    data = {
            'obj':obj
    }
    pdf = render_to_pdf('daa/imprimir/pdf.html', data)
    if pdf :
        response = HttpResponse(pdf, content_type='application/pdf')
        filename ="Avaria_%s.pdf" %("123451231")
        content = "inline; filename='%s'" %(filename)
        response['Content-Disposition'] = content
        download = request.GET.get("download")
        if download:
                content = "attachment; filename='%s'" %(filename)
        response['Content-Disposition'] = content
        return  response
    return HttpResponse("Not found")

และในการกระทำของฉัน ฉันมี:

class ModelAdmin(admin.ModelAdmin):
    actions = [Print]

และมันก็ทำงานได้ดี ฉันเลือกออบเจ็กต์ที่ฉันต้องการแสดงผล และใน html ของฉัน ฉันมีวงกลมที่สร้างรายการฟิลด์ทั้งหมดที่ฉันต้องการจาก obj เหล่านั้น

แต่ตอนนี้ฉันไม่ต้องการแสดงรายการเป็น PDF ฉันต้องการเรนเดอร์เพียง 1 obj ดังนั้นฉันจึงสร้างปุ่มแบบกำหนดเองเพื่อทำเช่นนั้น

http://prntscr.com/muijhl

ดังนั้นเมื่อฉันคลิกที่ปุ่ม ฉันต้องการเรนเดอร์เป็น pdf obj ที่เปิดอยู่ ฉันไม่รู้ว่าต้องทำอะไรเพื่อเรียก Def แต่อยู่ในปุ่ม


person Pedro Mariz    schedule 20.03.2019    source แหล่งที่มา


คำตอบ (1)


สำหรับวิธีขอโค้ดนี้เป็นมุมมองด้วย URL ของตัวเอง มีตัวอย่างที่สมบูรณ์แบบในเอกสารอย่างเป็นทางการ (แต่คุณต้องรู้ว่าจะต้องค้นหาอะไรจึงจะพบ)

จากนั้น คุณจะต้องแทนที่เทมเพลต change_form ของคุณ เพื่อเพิ่ม ปุ่ม/ลิงค์ที่ชี้ไปยัง URL นี้

person bruno desthuilliers    schedule 20.03.2019