Python 在Url模式中传递Kwarg

Python 在Url模式中传递Kwarg,python,django,Python,Django,我正在使用django.contrib.auth.views的密码resetview。在用户提交了密码重置的电子邮件地址后,我试图将我的路径(“reset-password/”…)指向使用我的“rest\u password\u email.html”模板。我已经将其添加为kwargs,但是django没有识别它,并继续将应用程序指向默认的“password\u reset\u email.html”。对如何实现这一目标有何建议?谢谢 顺便说一句:我正在使用名称空间“accounts”。因此,执

我正在使用django.contrib.auth.views的密码resetview。在用户提交了密码重置的电子邮件地址后,我试图将我的路径(“reset-password/”…)指向使用我的“rest\u password\u email.html”模板。我已经将其添加为kwargs,但是django没有识别它,并继续将应用程序指向默认的“password\u reset\u email.html”。对如何实现这一目标有何建议?谢谢

顺便说一句:我正在使用名称空间“accounts”。因此,执行上述操作的原因是在我的模板中引入修改后的url来说明名称空间

url.py

from django.urls import path 
from . import views
from django.contrib.auth.urls import urlpatterns
from django.contrib.auth.views import (
    LoginView, LogoutView, 
    PasswordResetView, PasswordResetDoneView,
    PasswordResetConfirmView,
    PasswordResetCompleteView
)
from django.urls import reverse_lazy

app_name = 'accounts'

urlpatterns = [
    path('', views.home, name = 'home'),
    path('column/', views.column),
    path('login/', LoginView.as_view(template_name='accounts/login.html'), name = 'login'),
    path('logout/', LogoutView.as_view(template_name='accounts/logout.html'), name = 'logout'),
    path('register/', views.register, name = 'register'),
    path('profile/', views.view_profile, name = 'view_profile'),
    path('profile/edit/', views.edit_profile, name = 'edit_profile'),
    path('change_password/', views.change_password, name = 'change_password'),
    path('reset-password/', PasswordResetView.as_view(template_name='accounts/reset_password.html'), kwargs={'email_template_name':'accounts/reset_password_email.html','post_reset_redirect': reverse_lazy('accounts:password_reset_done')}, name = 'password_reset'),
    path('reset-password/done', PasswordResetDoneView.as_view(), name = 'password_reset_done'),
    path('reset-password/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', PasswordResetConfirmView.as_view(), name = 'password_reset_confirm'),
    path('reset-password/complete/$', PasswordResetCompleteView.as_view(), name='password_reset_complete'),
]

您可以在PasswordResetView中设置您的
email\u template\u name

url(r'^reset-password/$',
    PasswordResetView.as_view(template_name='accounts/reset_password.html'),
    {
    'email_template_name': 'accounts/reset_password_email.html',
     'success_url' : reverse_lazy('accounts:reset_password_done')
     },
    name='reset_password'),
或者您可以直接将其传入.as_view()


连接错误问题已解决,重置密码正在工作。我在settings.py中缺少一个电子邮件后端。包括:EMAIL_BACKEND='django.core.mail.backends.console.EmailBackend'

谢谢。我尝试使用您的第二个选项,但它给出了一个连接错误:请求方法:POST请求URL:Django版本:3.0.3异常类型:ConnectionRefusedError确保模板表单中的方法是POST am。
url(r'^reset-password/$',
    PasswordResetView.as_view(template_name='accounts/reset_password.html'),
    {
    'email_template_name': 'accounts/reset_password_email.html',
     'success_url' : reverse_lazy('accounts:reset_password_done')
     },
    name='reset_password'),
 url(r'^reset-password/$',
        PasswordResetView.as_view(template_name='accounts/reset_password.html',
         email_template_name = 'accounts/reset_password_email.html',
         success_url = reverse_lazy('accounts:reset_password_done'))  ,
         name='reset_password'),