我想使用 django 的默认密码重置视图“PasswordResetView”,当用户在一个模板中忘记密码时,他可以重置他的密码,该模板已经有我自己构建的视图,在查看了教程和我找到的问题后,我发现如何仅在仅用于密码重置的不同模板上使用它,但我不希望用户在忘记密码时转到不同的页面只是为了更改他的密码,我想在引导模式中进行主页。
这是我的主视图,我想为其添加 PasswordResetView 功能:
def home(request):
user = request.user
signin_form = SigninForm()
signup_form = SignupForm()
if request.method == "POST":
if 'signin_form' in request.POST:
signin_form = SigninForm(request.POST)
if signin_form.is_valid():
email = request.POST['email']
password = request.POST['password']
user = authenticate(email=email, password=password)
if user:
login(request, user)
elif user is None:
messages.error(request, '?Email or password is incorrect')
if 'signup_form' in request.POST:
signup_form = SignupForm(request.POST)
if signup_form.is_valid():
signup_form.save()
full_name = signup_form.cleaned_data.get('full_name')
email = signup_form.cleaned_data.get('email')
raw_password = signup_form.cleaned_data.get('password1')
account = authenticate(email=email, password=raw_password)
login(request, account)
context …Run Code Online (Sandbox Code Playgroud) python django django-forms django-views django-authentication
我想为 django 的默认密码重置表单添加样式,例如类和占位符
我的 urls.py 中有以下内容
from django.urls import path
from . import views
from django.contrib.auth import views as auth_views
urlpatterns = [
# Password reset paths
path('password_reset/', auth_views.PasswordResetView.as_view(template_name="main/password_reset.html"),name="reset_password"),
path('password_reset_sent/', auth_views.PasswordResetDoneView.as_view(template_name="main/password_reset_sent.html"),name="password_reset_done"),
path('reset_password/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name="main/reset_password.html"),name="password_reset_confirm"),
path('reset_password_complete/', auth_views.PasswordResetCompleteView.as_view(template_name="main/reset_password_complete.html"),name="password_reset_complete"),
]
Run Code Online (Sandbox Code Playgroud)
在模板中
<form action="" method="POST">
{% csrf_token %}
{{form}}
<input type="submit" name="Send email" class="btn btn-primary" >
</form>
Run Code Online (Sandbox Code Playgroud) 当我尝试提交使用 DRF API 的 ajaxified 表单时,我进入浏览器控制台!
POST http://localhost:8000/api/texts/ 403(禁止)
这是我的 html 文件:
<form id="text-form" method="POST" action="">
<input type="text" name="title" placeholder="Title" class="form-control mb-3 pb-2"
maxlength="200" required id="title">
<input type="date" name="deadline" placeholder="Deadline" autocomplete="off"
class="form-control mb-3" id="myflatpickr">
<textarea name="requirements" cols="40" rows="4"
placeholder="requirements"
class="form-control col mt-3" maxlength="200" required id="requirements"></textarea>
<textarea name="document" cols="40" rows="10"
placeholder="document"
id="editor" class="form-control" required></textarea>
<button type="submit">Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的 JavaScript 文件
$("#text-form").submit(function (event) {
event.preventDefault();
$textData = $("#text-form").serialize()
$.ajax({
url: "http://localhost:8000/api/texts/",
method: "POST",
data: $textData,
success: function() {
console.log($textData)
},
error: function() …Run Code Online (Sandbox Code Playgroud)