def download_profile(self, request, user_id=None):
"""
Download User Profile Endpoint
---
omit_serializer: True
omit_parameters:
- query
"""
current_url = '%s?%s' % (
reverse(request.resolver_match.url_name, kwargs={'user_id': user_id}),
urlencode(request.query_params)
)
login_url = '/signin?next=%s' % quote_plus(current_url)
if not request.user.is_authenticated():
return redirect(login_url)
user = get_object_or_404(self.get_queryset(), pk=user_id)
try:
self.check_object_permissions(request, user)
except NotAuthenticated:
return redirect(login_url)
except PermissionDenied:
return HttpResponse("You do not have permission to access this estimate")
ctx = {
'user': user,
'profile': user.profile,
'work': user.work_set.all(),
'education': user.education_set.all()
}
rendered_html = render_to_string("tunga/pdf/profile.html", context=ctx).encode(encoding="UTF-8")
if request.accepted_renderer.format == 'html':
return HttpResponse(rendered_html)
pdf_file = HTML(string=rendered_html, encoding='utf-8').write_pdf()
http_response = HttpResponse(pdf_file, content_type='application/pdf')
http_response['Content-Disposition'] = 'filename="developer_profile.pdf"'
return http_response
评论列表
文章目录