2016-06-27 2 views
0

Я только что создал логин с Django, но он не хочет работать. Сценарий должен быть перенаправлен на start.html, если пользователь правильно зарегистрирован. Но Django просто перезагружает страницу с именем пользователя и паролем в URL-адресе.Вход Django не работает

view.py

from django.shortcuts import render, get_object_or_404 
from django.http import HttpResponse, HttpResponseRedirect 
from django.contrib.auth import authenticate, login 
from django.views.generic import View 

class Index(View): 
    def get(self, request): 
     return render(request, "index.html") 

    def user_login(request): 
     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) 
       return HttpResponseRedirect('^start/') 
      else: 
       return HttpResponseRedirect('^err/') 
     else: 
      print ("Invalid login details") 
      return HttpResponseRedirect('^impressum/') 

urls.py проекта:

from django.conf.urls import url 
from django.conf import settings 
from django.conf.urls.static import static 
from django.contrib import admin 
from alarm.views import * 
from impressum.views import * 
from login.views import * 

urlpatterns = [ 
    url(r'^$', Index.as_view()), 
    url(r'^admin/', admin.site.urls), 
    url(r'^start/', start.as_view()), 
    url(r'^terms/', impressum.as_view()), 
    url(r'^err/', error404.as_view()) 
] 

Что случилось с этим?

Полный код: https://github.com/Croghs/stuport

Спасибо за каждую помощь и извините за плохой английский

Croghs

ответ

1

Изменение <form type="post"> к <form method="post"> в index.html.

+0

Я изменил класс POST и изменил тип методу, но теперь я перенаправлен на пустую страницу, ( – Croghs

+0

Я думаю, что вы хотите «пост», а не «POST» – dyagmin

+0

Затем он выдает ошибку: . TypeError at/ post() принимает 1 позиционный аргумент, но 2 даны – Croghs

0

Представления на основе классов не распознают метод «user_login». Его следует называть просто «пост».

+0

Я изменил класс к POST и изменил тип на метод, но теперь я перенаправлен на пустую страницу; ( – Croghs

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