2013-03-07 6 views
0

Я только начал использовать django-registration. У меня есть два вопроса:Django-Registration: Как предотвратить регистрацию пользователя?

  1. Как вы не можете войти от входа пользователя на страницу регистрации?

  2. Как вы автоматически входите в систему после активации?

Я предпочитаю не менять код в самом приложении.

Для вопроса 2 я уже прочитал документы, в которых говорится, что он должен написать «функцию, которая прослушивает соответствующий сигнал, а ваша функция должна установить атрибут backend для правильной аутентификации, а затем вызвать django .contrib.auth.login() для входа пользователя в систему. " Я не знаю джанго достаточно хорошо, чтобы понять, что это значит или как это реализовать. Могли бы вы, ребята, помочь/указать мне в правильном направлении?

Edit:

Пробовал делать некоторые сигналы, пока не работает, не уверен, что это не так:

def loginActivationCallback(sender, user, request, **kwargs): 
    print user 
    print "registered" 

user_registered.connect(loginActivationCallback) 

Кроме того, поскольку я использую Django 1.5, я не делал пип установки django- регистрация (не полностью поддерживает 1.5), а вместо этого скопировала папку регистрации в мой проект. Не уверен, что это влияет на сигналы.

ответ

3

Просто то, что вы можете сделать, это проверить на ваш взгляд регистра

if request.user.is_authenticated: 
    #redirect user to the profile page 
    return HttpResponseRedirect('/profile/') 
+0

Я предпочитаю не изменяя Джанго регистрацию, так как это третье приложение партия – Derek

+0

вы можете получить доступ к request.user через веб-сайт применить wharever вы хотите, чтобы – masterofdestiny

+0

взгляды находились в стороннем приложении, поэтому те, которые вызываются, не уверены, что вы имеете в виду, обратившись к request.user из этих представлений, не обращаясь к коду третьей стороны. – Derek

0
from registration.signals import user_activated 

def login_user(sender, user, request, **kwargs): 
    user.backend='django.contrib.auth.backends.ModelBackend' 
    login(request,user) 
user_activated.connect(login_user) 
+0

. Я предпочитаю не менять регистрацию django, так как это Стороннее приложение – Derek

+0

не уверен, что вы имеете в виду, не могли бы вы Более конкретно? код приложения для регистрации django: https://bitbucket.org/ubernostrum/django-registration – Derek

+0

Код для регистрации django связан выше. Я просто установил приложение, предоставил правильные шаблоны, а URL-адреса django-регистрации обрабатывали все остальное. – Derek

Смежные вопросы