問題

我正在嘗試使用Django& HTML進行登錄檔單,我正在關注this tutorial: Video

2:45:00進入影片,我做了與他完全相同的步驟,即使我的程式碼中唯一的區別與我的前一個問題相關: 我之前的執行緒

這是我的HTML程式碼:

     <!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Registration</title>
</head>
<body>
    <form action="register" method="post">
        {% csrf_token %}
        <input type="text" name="first_name" placeholder="First Name"><br>
        <input type="text" name="last_name" placeholder="Last Name"><br>
        <input type="text" name="username" placeholder="Username"><br>
        <input type="email" name="email" placeholder="Email"><br>
        <input type="password" name="password1" placeholder="Password"><br>
        <input type="password" name="password2" placeholder="Confirm Password"><br>
        <input type="Submit">
    </form>
</body>
</html>
 

這是我的views.py:

 from django.shortcuts import render, redirect
from django.contrib.auth.models import User, auth

def register(request):

    if (request.method == 'post'):
        first_name = request.POST['first_name']
        last_name = request.POST['last_name']
        username = request.POST['username']
        password1 = request.POST['password1']
        password2 = request.POST['password2']
        email = request.POST['email']

        user = User.objects.create_user(username=username, password=password1, email=email, first_name=first_name, last_name=last_name)
        user.save()
        print('user created')
        return redirect('')

    else:
        return render(request, 'register.html')
 

但是,似乎當我按“Submit”時,而不是按鈕實際上讀取views.py程式碼並檢查IF語句時,它只是將我重定向到localhost:8000 / account / register / register,這是完全錯誤的,如下所示: Imgurlink

我不確定我做錯了什麼,為什麼我的程式碼行為不同,即使我正在做教程傢伙在他的影片中正在做的事情?

任何幫助將不勝感激.

  最佳答案

他的程式碼完全錯了.你不能像這樣在action屬性中放置檢視名稱;它需要是一個實際的路徑.因為你的URL是“/ account / register”,這就是你應該使用的.

但是一個體面的教程本來會引入{% url %}標籤.事實上,一個體面的教程本來會在這裡使用Django表單;他似乎完全忽略了考慮驗證,這是非常不可原諒的.我建議找到一個不同的教程.

(注意,您在複製程式碼時出錯了;在檢視request.method的檢視中,它必須是“POST”,而不是“post”.)

  相同標籤的其他問題

pythonhtmldjango