2016-11-28 8 views
1

xlsxwriterを使用してxlsxファイルを生成し、それを電子メールの添付ファイルとして送信しようとしています。Django:バイトのようなオブジェクトを電子メールに添付できないようにするTypeError

def WriteToExcel(project): 
    output = BytesIO() 
    workbook = xlsxwriter.Workbook(output) 

    #putting in data 

    workbook.close() 
    xlsx_data = output.getvalue() 
    # xlsx_data contains the Excel file 
    return xlsx_data 

def project_email (request, project_id): 
    project = Project.objects.get(id = project_id) 
    xlsx_data = WriteToExcel(project) 

    message = EmailMessage("Heading", 'Here is the message.', 'HOST', ['[email protected]']) 

    message.attach_file(xlsx_data) 
    message.send() 

そして、私は電子メールを送信しようとしたとき、私は次のようなエラーがあります:ここで私は今持っているものである

TypeError at /projstatus/1/email

cannot use a string pattern on a bytes-like object

は、私はその周りに行くことができる方法はありますか?同様に、xlsxファイルを非バイナリにするか、電子メールにバイナリファイルを添付する関数があるかどうかを確認します。

答えて

1

実際に私はこの問題を理解しました。

def project_email (request, project_id): 
    project = Project.objects.get(id = project_id) 
    xlsx_data = WriteToExcel(project) 

    message = EmailMessage("Heading", 'Here is the message.', 'HOST', ['[email protected]']) 

    message.attach("Report.xlsx", xlsx_data, 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') 
    message.send() 

は、私はちょうど場合、他の人には、ここでこれを左になり、同じこと

を疑問に思っている:あなたはこのような何かを必要とします
関連する問題