Esempio n. 1
0
def register(request):
    if request.method == 'GET':
        form = RegistForm()
        return render_to_response("register.html", RequestContext(request, {'form': form}))
    else:         
        form = RegistForm(request.POST)
        register_flag = True
        username_tips = False
        password_tips = False
        email_tips = False
        tips_message = ''

        if form.is_valid():
            username = request.POST.get('username', '')
            password = request.POST.get('password', '')
            password_again = request.POST.get('password_again', '')
            email = request.POST.get('email', '')
            try:
                user = User.objects.get(username=username)
            except User.DoesNotExist:
                pass
            else:
                tips_message = u'用户名已存在'
                username_tips = True
                register_flag = False

            if register_flag == True and password != password_again:
                tips_message = u'两次密码不一致'
                password_tips = True
                register_flag = False
                
            sendEmail = dict()
            sendEmail['from'] = '*****@*****.**'
            with open('media/email/register.txt') as f:
                allEmail = f.read().split('\n')
                sendEmail['subject'] = allEmail[0]
                sendEmail['text'] = ''.join(allEmail[1:]) % username.encode('utf-8')
            
            emailReturnNo = send_mail(sendEmail['subject'], sendEmail['text'], sendEmail['from'], [email], fail_silently=False)
            if 0 == emailReturnNo:
                tips_message = u'邮箱有误'
                email_tips = True
                register_flag = False

            if register_flag:
                user = User.objects.create_user(username=username,
                                                password=password,
                                                email=email)

                user.save()
                usermessage = UserMessage()
                print type(request.user)
                usermessage.user = user
                usermessage.save()

                return HttpResponseRedirect('/accounts/login/')
            
        return render_to_response(
            'register.html',
            RequestContext(request, {'form': form,
                                     'tips': True,
                                     'tips_title': u'错误!',
                                     'tips_message': tips_message,
                                     'username_tips': username_tips,
                                     'password_tips': password_tips,
                                     'email_tips': email_tips}))