Я относительно новый Джанго ..Джанго аутентификации Войти
В приложении, которое я в здании, есть несколько типов пользователей (т.е. User1, user2, USER3), которые все наследуемых от django.contrib .auth.models.User и при входе в систему, каждый пользователь должен быть перенаправлен на страницу успеха в зависимости от того, какой тип пользователя он есть.
В views.py:
def login_attempt(request):
user = request.user
data = {}
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
try:
User1.objects.get(username = user.username)
type = "undergrad"
except ObjectDoesNotExist:
pass
try:
User2.objects.get(username = user.username)
type = "grad"
except ObjectDoesNotExist:
pass
try:
User3.objects.get(username = user.username)
type = "sponsor"
except ObjectDoesNotExist:
pass
return render_to_response (
"templates/success_"+type+".html",
data,
context_instance=RequestContext(request)
)
else:
return render_to_response (
"templates/fail1.html",
data,
context_instance=RequestContext(request)
)
else:
return render_to_response (
"templates/fail2.html",
data,
context_instance=RequestContext(request))
и type(user)
является <class 'django.contrib.auth.models.User'>
Я в настоящее время работает тесты через "manage.py тест" - аутентификации и перенаправляет работают для user1 и user2 успешно, однако он не аутентифицируется для User3 и возвращает шаблон «fail2.html». Все остальные тесты с User3 вернули действительные результаты.
Любые предложения? Это мой первый вопрос, поэтому не стесняйтесь задавать вопросы, если я оставил соответствующую информацию!
Заранее спасибо.
Что еще отличается между типами класса? –
у каждого из них есть поле группы ForeignKeys для разных классов групп, все из которых наследуются от django.contrib.auth.Group (так же, как пользователи) – Eunice
Хорошо, что отличает объекты 'Group', что заставляет их стоить полностью новые классы? –