簡體   English   中英

Django:創建新的用戶帳戶

[英]Django: Create new user account

我在創建新帳戶然后登錄時遇到了一些麻煩。我在(first_name,last_name,用戶名,密碼)中輸入了所有憑據,然后選擇“創建新帳戶”,它成功將我重定向到登錄頁面。 但是,當我嘗試使用該新帳戶登錄時,它說我的用戶名不存在。

該問題最有可能在我的views.py文件中:

def create_account(request):
    if request.method == 'POST':
        new_user = User(username = request.POST["username"], 
                        password = request.POST["password"])
        new_user.save()
        Student.objects.create(user=new_user, 
                               first_name=str(request.POST.get("first_name")),
                               last_name=str(request.POST.get("last_name")))
        new_user.is_active = True
        return redirect('../')
    else:
        return render(request, 'polls/create_account.html')

讓我知道你們是否需要更多代碼或信息。 謝謝!

密碼字段需要加密。 如果要設置密碼,則需要使用set_password()方法來處理加密。

new_user = User(username = request.POST["username"])
        new_user.set_password(request.POST["password"])
        new_user.save()

如果您使用帶有cleaned_data form ,則這是另一個選擇:

def create_account(self, request):
    if request.method == 'POST':
        form  = RegisterForm(request.POST) #registration form
        if form.is_valid():
            cd              = form.cleaned_data
            username        = cd['username']
            password        = cd['password']

            new_user = User.objects.create_user(
                            username = cd['username'],
                            password = cd['password']
                        )
            new_user.save()

            #... do stuff

暫無
暫無

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

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