from django.http import HttpResponse
from django.template.loader import get_template
from django.template import Context
import cStringIO as StringIO
import xhtml2pdf.pisa as pisa
def render_to_pdf(template_src, context_dict, filename='contract.pdf'):
""" Отдаю PDF файл """
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(
StringIO.StringIO(html.encode('utf-8')),
result,
encoding='UTF-8',
show_error_as_pdf=True
)
if not pdf.err:
response = HttpResponse(result.getvalue(), content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s' % filename
return response
return HttpResponse(u'We had some errors!')
def contract_text(request):
text = ContractText.objects.filter(user=request.user)
return render_to_pdf('pfd_template.html', {'text': text}, 'new_contract.pdf')
/etc/apache2/
/etc/nginx/
- sites
+ project_name_one
- env (тут окружение)
- tmp
- logs
- source (тут весь код)
+ project_name_two
- env (тут окружение)
- tmp
- logs
- source (тут весь код)
class CommentAdmin(admin.ModelAdmin):
list_display = ('news__title')
class CommentAdmin(admin.ModelAdmin):
list_display = ('news_title_fnc')
def news_title_fnc(self, obj):
return obj.news.title
python manage.py makemigrations
python manage.py migrate
«Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» © Стив Макконнелл