簡體   English   中英

登錄表單不斷告訴我的用戶名已經存在 django

[英]login form keeps telling my username already exists django

所以我正在嘗試使用 forms.py 文件為 django 網站制作一個登錄表單,以在我的 html 中生成一個表單。 我已經使用相同的方法制作了一個注冊表單並且效果很好,但由於某種原因,我的登錄表單一直像注冊表一樣工作,並說我的用戶名已經存在。 我認為這只是一個小錯誤,但我無法弄清楚它到底是什么。

表格.py

from django.contrib.auth.models import User
from django import forms

class LoginForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput)

class Meta:
    model = User
    fields = ['username', 'password']

模型.py

class LoginFormView(View):
form_class = LoginForm
template_name = 'intranet/login_form.html'

def get(self, request):
    form = self.form_class(None)
    return render(request,self.template_name,{'form': form})

def post(self,request):
    form = self.form_class(request.POST)

    if form.is_valid():

        username = request.POST.get['username']
        password = request.POST.get['password']
        user = authenticate(username=username,password=password)

        if user is not None:
            if user.is_active:
                login(request,user)
                return redirect('werknemers_list')

    return render(request, self.template_name, {'form': form})

登錄表單.html

<h1>Log in</h1>
<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="log in" />
</form>

網址.py

 from django.conf.urls import  url

    from intranet import views

    urlpatterns = [
      url(r'^$', views.LoginFormView.as_view(), name='login'),
      url(r'^registreer$', views.UserFormView.as_view(), name='registreer')]

您不應該為此使用 ModelForm。 這將始終調用模型驗證,在這種情況下會檢查用戶名的唯一性。

請改用標准的 Form 類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM