2010-12-15 77 views
2

si j'utilise un mot chinois sujet:comment envoyer un mot non-anglais (chinois) email en utilisant django

subject = u'邮件标题' 

il sera show erreur:

UnicodeDecodeError at /account/login_view/ 

'utf8' codec can't decode bytes in position 0-1: invalid data 

Que puis-je faire elle,

grâce

mis à jour

def register_view(request): 
    if request.method == 'POST': 
     form = SignupForm(request.POST) 
     if form.is_valid(): 
      # Process the data in form.cleaned_data 
      # ... 
      username = form.cleaned_data['username'] 
      password = form.cleaned_data['password'] 
      email = form.cleaned_data['email'] 
      user = User.objects.create_user(username, email, password) 

      send_html_mail(subject, html_content, [email]) 
      if user is not None: 
       user.save() 
       #return HttpResponse(simplejson.dumps({'msg':'ok'})) 
       return HttpResponseRedirect("/") 
      else: 
       return HttpResponseRedirect("/account/register_view") 
    else: 
     form = SignupForm() # An unbound form 

    return render_to_response('accounts/register_view.html',{'form': form,}) 

def login_view(request): 
    if request.method == 'POST': 
     form = LoginForm(request.POST) 
     if form.is_valid(): 
      username = form.cleaned_data['username'] 
      password = form.cleaned_data['password'] 
      user = authenticate(username=username, password=password) 
      if user is not None: 
       if user.is_active: 
        login(request, user) 
        return HttpResponseRedirect("/") 
       else: 
        return HttpResponse('user is not active') 
      else: 
       #return HttpResponseRedirect("/account/login_submit") 
       return HttpResponse('No this username . and <a href="/">return to homepage</a>') 
    else: 
     form = LoginForm() # An unbound form 

    return render_to_response('accounts/login_view.html',{'form': form,}) 
+0

Pourriez-vous partager le code de votre 'vue login_view'? – ayaz

+0

regardez le 'updated'. – zjm1126

Répondre

2

Comment envoyez-vous le sujet. Vous devriez l'encoder en utf-8 avant de l'envoyer.

subject.encode('utf-8') 

ou

import codecs 
subject = codecs.utf_8_encode(subject) 

Et puis l'envoyer à votre point de vue.

+0

thans, mais ce n'est pas utile ~ – zjm1126