【发布时间】:2018-01-18 23:22:19
【问题描述】:
我正在尝试在 django 中循环用户数据以在 reportlab 的帮助下创建一个表。但是我遇到了一个属性错误,即“元组”对象没有属性“用户名”。
def admin_tools_pdf(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="users.pdf" '
buffer=BytesIO()
p=canvas.Canvas(buffer,pagesize=A4)
width, height = A4
styles = getSampleStyleSheet()
styleN = styles["BodyText"]
styleN.alignment = TA_LEFT
styleBH = styles["Normal"]
styleBH.alignment = TA_CENTER
user_data=User.objects.all().values_list('username','email')
username=Paragraph("'<b>Username</b>'",styleBH)
email=Paragraph("'<b>Email Id</b>'",styleBH)
data=[[username,email]]
for i in user_data:
username=str(i.username).encode('utf-8')
email=str(i.email).encode('utf-8')
user=Paragraph(username,styleN)
mail=Paragraph(email,styleN)
data+=[user,mail]
table=Table(data,colWidths=[4*cm,4*cm,4*cm,4*cm])
table.wrapOn(p, width, height)
table.wrapOn(p, width, height)
table.drawOn(p)
p.showpage()
p.save()
pdf=buffer.getvalue()
buffer.close()
response.write(pdf)
return response
导入文件为:
from io import BytesIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle,Paragraph
from reportlab.lib.pagesizes import A4, cm
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib.enums import TA_JUSTIFY, TA_LEFT, TA_CENTER
非常感谢!
【问题讨论】:
-
你能提供你的完整日志吗