在python django中创建注册配置文件

时间:2015-06-19 18:24:35

标签: python django registration

我的目标是Django应用程序,在注册后,用户可以使用该网站,但我稍后会提示他们验证他们的电子邮件(激活它)。我在他们注册时向他们发送电子邮件验证电子邮件,如果他们找不到该电子邮件则再次发送。

我正在使用Django 1.7.8django-registration-redux

这是我的目标网页视图:

from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.contrib.auth import authenticate
from django.contrib.auth import login

from registration import signals
from registration.models import RegistrationManager

from drivers.forms import MyUserCreationForm

def create_registration_profile(user, request, **kwargs):
    user.backend = 'django.contrib.auth.backends.ModelBackend'
    login(request, user)
    reg_manager = RegistrationManager()
    reg_profile = reg_manager.create_profile(user)
    reg_profile.save()
    print "Callback reached!"

signals.user_registered.connect(create_registration_profile)

def landing(request):
    if request.method == 'POST':
        form = MyUserCreationForm(request.POST)
        if form.is_valid():
            new_user = form.save()
            new_user = authenticate(email=form.cleaned_data['email'], password=form.cleaned_data['password1'])
            new_user.username = new_user.email  # my custom user has no username, just email
            signals.user_registered.send(sender='landing', user=new_user, request=request)
            login(request, new_user)
            return HttpResponseRedirect(reverse("myapp:dashboard"))
        else:
            print form.errors
    else:
        form = MyUserCreationForm()
    return render(request, "landing.html", {
        'registration_form': form,
    })

不幸的是,这在创建RegistrationProfile

时失败了
Request Method: POST
Request URL: http://localhost:8000/

Django Version: 1.7.8
Python Version: 2.7.5
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'registration',
 'macros',
 'myapp',
 'debug_toolbar')
Installed Middleware:
(u'debug_toolbar.middleware.DebugToolbarMiddleware',
 '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/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/me/Code/myapp/myapp_web/myapp_web_project/views.py" in landing
  29.             signals.user_registered.send(sender='landing', user=new_user, request=request)
File "/Users/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send
  198.             response = receiver(signal=self, sender=sender, **named)
File "/Users/me/Code/myapp/myapp_web/myapp_web_project/views.py" in create_registration_profile
  16.     reg_profile = reg_manager.create_profile(user)
File "/Users/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/registration/models.py" in create_profile
  115.                            activation_key=activation_key)
File "/Users/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  92.                 return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/Users/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/db/models/query.py" in create
  370.         obj = self.model(**kwargs)

Exception Type: TypeError at /
Exception Value: 'NoneType' object is not callable

有什么想法吗?

0 个答案:

没有答案