2016-11-24 24 views
0

これを理解しようと数日を真剣に腰掛けており、絶対にレンガの壁にぶつかっています。私はこの問題に関するすべてのSOの記事を調査して読みましたが、最終的には助けてください。Djangoフォームと 'タプル'オブジェクトに属性 'rsplit'のエラーがありません

私は簡単な連絡フォームを作成しようとしていますが、フォームを送信すると、同じ'tuple' object has no attribute 'rsplit' errorが返されます。

私のDjangoのバージョン1.9とPython3.5

def contact(request): 
    title = 'Contact Us' 
    title_align_center = True 
    form = ContactForm(request.POST or None) 

    if form.is_valid(): 
     form_email = form.cleaned_data.get('email') 
     form_message = form.cleaned_data.get('message') 
     form_full_name = form.cleaned_data.get('full_name') 
     subject = 'Site Contact Form' 
     from_email = settings.DEFAULT_FROM_EMAIL 
     recipient_list = [from_email, '[email protected]'] 
     message = '%s: %s via %s' % (
      form_full_name, 
      form_message, 
      form_email) 
     # some_html_message = ''' <h1>hello</h1> ''' 

     email = EmailMessage(
      subject, 
      message, 
      form_email, 
      recipient_list, 
      ['[email protected]'], 
      reply_to=[from_email], 
      headers={'Reply-To': from_email}, 
     ) 
     email.send() 

    context = { 
     'form': form, 
     'title': title, 
     'title_align_center': title_align_center, 
    } 
    return render(request, 'pages/contact.html', context) 

を使用しているトレースバック

Environment: 

Request Method: POST 
Request URL: http://127.0.0.1:8001/contact/ 

Django Version: 1.9 
Python Version: 3.5.1 
Installed Applications: 
['accounts', 
'comments', 
'pages', 
'posts', 
'search', 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django_summernote'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 



Traceback: 

File "/Users/rooster/Documents/Development/boston_intercom/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response 
    149.      response = self.process_exception_by_middleware(e, request) 

File "/Users/rooster/Documents/Development/boston_intercom/venv/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response 
    147.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/Users/rooster/Documents/Development/boston_intercom/pages/views.py" in contact 
    80.   email.send() 

File "/Users/rooster/Documents/Development/boston_intercom/venv/lib/python3.5/site-packages/django/core/mail/message.py" in send 
    292.   return self.get_connection(fail_silently).send_messages([self]) 

File "/Users/rooster/Documents/Development/boston_intercom/venv/lib/python3.5/site-packages/django/core/mail/message.py" in get_connection 
    250.    self.connection = get_connection(fail_silently=fail_silently) 

File "/Users/rooster/Documents/Development/boston_intercom/venv/lib/python3.5/site-packages/django/core/mail/__init__.py" in get_connection 
    36.  klass = import_string(backend or settings.EMAIL_BACKEND) 

File "/Users/rooster/Documents/Development/boston_intercom/venv/lib/python3.5/site-packages/django/utils/module_loading.py" in import_string 
    15.   module_path, class_name = dotted_path.rsplit('.', 1) 

Exception Type: AttributeError at /contact/ 
Exception Value: 'tuple' object has no attribute 'rsplit' 
+3

。 – Rajesh

+0

settings.pyファイルにデフォルトの電子メール設定の構造を表示します。これらの設定には問題があります。そのため、エラーが発生しています。 –

答えて

0

その後の問題は、あなたのように、デフォルトのメール設定で、あなたのsettings.pyファイルでありますトレースバックで見ることができる、EMAIL_BACKENDの設定が問題かもしれません。

これらの設定は次のようにする必要があります:私は、エラーの原因を是正することができるように、完全なトレースバックを貼り付けてください

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'yourpassword' 
EMAIL_PORT = 587 
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
DEFAULT_FROM_EMAIL = '[email protected]' 
関連する問題