Various updates
This commit is contained in:
parent
e169b8c1d1
commit
89519e48a9
5 changed files with 80 additions and 57 deletions
|
|
@ -1,6 +1,7 @@
|
|||
from django.contrib import admin
|
||||
from django.template.response import TemplateResponse
|
||||
from django.urls import path
|
||||
from django.shortcuts import render
|
||||
from django.conf.urls import url
|
||||
|
||||
from uncloud_pay.views import BillViewSet
|
||||
|
|
@ -36,12 +37,13 @@ class BillAdmin(admin.ModelAdmin):
|
|||
pat = lambda regex, fn: url(regex, self.admin_site.admin_view(fn), name='%s_%s' % (info, fn.__name__))
|
||||
|
||||
url_patterns = [
|
||||
pat(r'^([0-9]+)/as_pdf/$', self.my_view),
|
||||
pat(r'^([0-9]+)/as_pdf/$', self.as_pdf),
|
||||
pat(r'^([0-9]+)/as_html/$', self.as_html),
|
||||
] + super().get_urls()
|
||||
|
||||
return url_patterns
|
||||
|
||||
def my_view(self, request, object_id):
|
||||
def as_pdf(self, request, object_id):
|
||||
bill = self.get_object(request, object_id=object_id)
|
||||
print(bill)
|
||||
|
||||
|
|
@ -59,15 +61,29 @@ class BillAdmin(admin.ModelAdmin):
|
|||
|
||||
return response
|
||||
|
||||
# ...
|
||||
context = dict(
|
||||
# Include common variables for rendering the admin template.
|
||||
self.admin_site.each_context(request),
|
||||
# Anything else you want in the context...
|
||||
# key=value,
|
||||
)
|
||||
def as_html(self, request, object_id):
|
||||
bill = self.get_object(request, object_id=object_id)
|
||||
|
||||
#return TemplateResponse(request, "admin/change_list.html", context)
|
||||
if bill is None:
|
||||
raise self._get_404_exception(object_id)
|
||||
|
||||
return render(request, 'bill.html.j2',
|
||||
{'bill': bill,
|
||||
'bill_records': bill.billrecord_set.all()
|
||||
})
|
||||
|
||||
|
||||
bill_html = render_to_string("bill.html.j2", {'bill': bill,
|
||||
'bill_records': bill.billrecord_set.all()
|
||||
})
|
||||
|
||||
bytestring_to_pdf(bill_html.encode('utf-8'), output_file)
|
||||
response = FileResponse(output_file, content_type="application/pdf")
|
||||
|
||||
response['Content-Disposition'] = f'filename="bill_{bill}.pdf"'
|
||||
|
||||
return HttpResponse(template.render(context, request))
|
||||
return response
|
||||
|
||||
|
||||
admin.site.register(Bill, BillAdmin)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue