2016-11-19 6 views
1

Как я могу войти и перенаправить его «Dashboard» и форма авторизации для администратора сайта и перенаправить его «панель администратора»Как я могу создать две разные формы входа в Django?

Я искал и читал, что это может быть сделано путем создания ModelBackend и нашел это как ссылку, но это не дает мне понять, как это сделать. https://docs.djangoproject.com/en/1.8/topics/auth/customizing/

+0

вы можете создать два вида. первая будет перенаправляться на «Панель мониторинга», а вторая - на «Панель администратора». –

+0

С помощью форм входа вы хотите, чтобы вы использовали страницу входа по умолчанию в Django, а при успешном входе в систему она должна перенаправлять вас на другую высадку? –

+0

Но, как я могу это сделать? Я искал, и только я нашел с ModelBackend:/и Than you so much! –

ответ

1

Насколько я понимаю, вам нужны два вида входа. В приложении views.py создать 2 точки зрения, например:

def loginDashboard(request): 
    if request.user.is_authenticated(): 
    return HttpResponseRedirect('/') 
    if request.method == 'POST': 
    form = LoginForm(request.POST) 
    if form.is_valid(): 
     username = form.cleaned_data['username'] 
     password = form.cleaned_data['password'] 
     account = authenticate(username=username, password=password) 
     if account is not None: 
     login(request, account) 
#here is redirecting to dashboard 
      return HttpResponseRedirect('/dashboard/') 
     else: 
     return render(request, 'profiles/login.html', context) 
    else: 
     return render(request, 'profiles/login.html', context) 
    else: 
    form = LoginForm() 
    context = {'form':form} 
    return render(request, 'profiles/login.html', context) 

def loginAdminPanel(request): 
    if request.user.is_authenticated(): 
    return HttpResponseRedirect('/') 
    if request.method == 'POST': 
    form = LoginForm(request.POST) 
    if form.is_valid(): 
     username = form.cleaned_data['username'] 
     password = form.cleaned_data['password'] 
     account = authenticate(username=username, password=password) 
     if account is not None: 
     login(request, account) 
#here is redirecting to admin panel 
      return HttpResponseRedirect('/adminpanel/') 
     else: 
     return render(request, 'profiles/login.html', context) 
    else: 
     return render(request, 'profiles/login.html', context) 
    else: 
    form = LoginForm() 
    context = {'form':form} 
    return render(request, 'profiles/login.html', context) 

И ваш urls.py:

url(r'^login-dash/$', views.loginDashboard), 
url(r'^login-admin/$', views.loginAdminPanel), 

В этом случае у вас есть два входа страниц (example.com/login-dash и example.com/login-admin)

your forms.py:

class LoginForm(forms.Form): 
username = forms.CharField(label=(u'Username')) 
password = forms.CharField(label=(u'Pasword'), widget=forms.PasswordInput(render_value=False)) 

Надеюсь, это поможет вам.

+0

Я пытаюсь, спасибо, так много, через несколько минут я говорю вам –