2

내 django 웹 앱에서 비밀번호 재설정 링크를 클릭 할 때 오류가 발생합니다. 사람들은이 질문을하기 전에이 솔루션을 제공합니다. - Django-nonrel + Django-registration problem: unexpected keyword argument 'uidb36' when resetting passwordDjango가 비밀번호 재설정시 예상치 못한 키워드 인수 uidb36이 발생했습니다

제 경우에는 이미 64 인코딩 (아래 urls.py 참조)을 설정했지만 아직이 오류 메시지가 표시됩니다. 내 urls.py에서

오류

password_reset_confirm() got an unexpected keyword argument 'uidb36' 

역 추적

Traceback: 
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    112.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "/app/.heroku/python/lib/python2.7/site-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper 
    75.    return view(request, *args, **kwargs) 
File "/app/.heroku/python/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    52.   response = view_func(request, *args, **kwargs) 

Exception Type: TypeError at /accounts/password/reset/confirm/Mg-3ve-2379945fbf21a5bfbe8c/ 
Exception Value: password_reset_confirm() got an unexpected keyword argument 'uidb36' 

urlpatterns = patterns('', 
... 
url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 
        auth_views.password_reset_confirm, 
        name='password_reset_confirm'), 
... 
) 

핍 정지

Django==1.6.6 
South==1.0 
dj-database-url==0.3.0 
django-admin-bootstrapped==2.0.4 
django-autoslug==1.7.2 
django-crispy-forms==1.4.0 
django-endless-pagination==2.0 
django-guardian==1.2.4 
django-registration==1.0 
pytz==2014.7 
six==1.8.0 
wsgiref==0.1.2 
+0

같은이어야한다 지금이? 귀하의 오류 및 귀하의 URL 패턴이 일치하지 않습니다. –

+0

나는 장고 등록에 의해 제공된 것들을 오버 라이딩하는이 urls.py를 확실히 사용하고있다. 등록/auth_urls.py. 아래에서 전체 urls.py를 받았습니다. – cloudviz

답변

0

여기 내 전체 urls.py

from django.conf.urls import patterns, include, url, include 
from django.conf import settings 
from django.conf.urls.static import static 
from django.contrib.auth import views as auth_views 

#Use for UNIQUE EMAIL 
from registration.backends.default.views import RegistrationView 
from registration.forms import RegistrationFormUniqueEmail 

from django.contrib import admin 
admin.autodiscover() 

class RegistrationViewUniqueEmail(RegistrationView): 
    form_class = RegistrationFormUniqueEmail 


urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^$', 'Notes.views.home', name='home'), 
    url(r'^profile/edit_profile', 'profiles.views.edit_profile', name='edit_profile'), 
    url(r'^profile/(?P<slug>.*)/$', 'profiles.views.profile', name='profile'),    
    url(r'^password/change/$', 
        auth_views.password_change, 
        name='password_change'), 
    url(r'^password/change/done/$', 
        auth_views.password_change_done, 
        name='password_change_done'), 
    url(r'^password/reset/$', 
        auth_views.password_reset, 
        name='password_reset'), 
    url(r'^password/reset/done/$', 
        auth_views.password_reset_done, 
        name='password_reset_done'), 
    url(r'^password/reset/complete/$', 
        auth_views.password_reset_complete, 
        name='password_reset_complete'), 
    url(r'^password/reset/confirm/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 
        auth_views.password_reset_confirm, 
        name='password_reset_confirm'), 
    url(r'^register', RegistrationViewUniqueEmail.as_view(), 
        name='registration_form'), 
    url(r'^notes/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>.*)/$', 
     'Notes.views.note_detail', 
     name = "note_detail"), 
    (r'^accounts/', include('registration.backends.default.urls')), 
    url(r'^search/', 'Notes.views.search', name='search'), 

) 

if settings.DEBUG: 
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
2

당신은 당신이 사용하는 코드보다 장고 1.6 이상을 사용하는 경우 암호 재설정 장고 1.6에서 변경되면서 잘못이다.

여기 https://docs.djangoproject.com/en/1.7/topics/auth/default/#django.contrib.auth.views.password_reset

읽고 그에 따라 사용자 암호 재설정 이메일 템플릿을 변경해야합니다 바랍니다. 또한 그에 따라

을 URL을 변경해야합니다

당신은 당신은 당신이 올바른 코드를 확인하는 확신

url(r'^password/reset/(?P<uidb64>[0-9A-Za-z]+)-(?P<token>.+)/$', 'django.contrib.auth.views.password_reset_confirm', 
{'post_reset_redirect' : '/accounts/password/done/'}), 

url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', 
    'django.contrib.auth.views.password_reset_confirm', 
    name='password_reset_confirm'), 
관련 문제