簡體   English   中英

Django email 給出錯誤“列表” object 沒有屬性“分割線”

[英]Django email is giving error ''list' object has no attribute 'splitlines''

在我看來,這是我的 email 發送代碼:

def send_email():
    if dasa == 1:
        send_mail(
            'Test available',
            available_tests,
            'from_email',
            ['to_email'],
            fail_silently=False,
        )

但是,當我在網站上運行它時,出現以下錯誤:

AttributeError at /tests/
'list' object has no attribute 'splitlines'
Request Method: GET
Request URL:    https://myapp.herokuapp.com/tests/
Django Version: 4.0.1
Exception Type: AttributeError
Exception Value:    
'list' object has no attribute 'splitlines'
Exception Location: /app/.heroku/python/lib/python3.9/site-packages/django/core/mail/message.py, line 169, in set_payload
Python Executable:  /app/.heroku/python/bin/python
Python Version: 3.9.10
Python Path:    
['/app/.heroku/python/bin',
 '/app',
 '/app/.heroku/python/lib/python39.zip',
 '/app/.heroku/python/lib/python3.9',
 '/app/.heroku/python/lib/python3.9/lib-dynload',
 '/app/.heroku/python/lib/python3.9/site-packages']
Server time:    Fri, 18 Feb 2022 03:06:30 +0000
Traceback Switch to copy-and-paste view
/app/.heroku/python/lib/python3.9/site-packages/django/core/handlers/exception.py, line 47, in inner
                response = get_response(request) …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/handlers/base.py, line 181, in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) …
Local vars
/app/Tests/views.py, line 35, in check
        send_mail('Test available', available_tests, 'from_email@gmail.com', ['to_email@gmail.com'], fail_silently=False) …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/__init__.py, line 61, in send_mail
    return mail.send() …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/message.py, line 284, in send
        return self.get_connection(fail_silently).send_messages([self]) …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/backends/smtp.py, line 109, in send_messages
                sent = self._send(message) …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/backends/smtp.py, line 123, in _send
        message = email_message.message() …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/message.py, line 246, in message
        msg = SafeMIMEText(self.body, self.content_subtype, encoding) …
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/message.py, line 159, in __init__
        MIMEText.__init__(self, _text, _subtype=_subtype, _charset=_charset) …
Local vars
/app/.heroku/python/lib/python3.9/email/mime/text.py, line 42, in __init__
Local vars
/app/.heroku/python/lib/python3.9/site-packages/django/core/mail/message.py, line 169, in set_payload
                for line in payload.splitlines()

我該如何解決? 我直接從 django 教程中獲取了說明,所以我不知道為什么它不起作用。 我也找不到任何關於這個所謂的“分割線”屬性的信息。

Django 的send_email需要一個字符串作為消息參數。 因此,您需要首先在available_tests列表變量上應用 eg join 根據變量的結構,一個簡單的"\n".join(available_tests)就足夠了。 或者<br>如果您有 HTML 消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM