2011-10-05 27 views
1

我與Python打的時​​候,我在Python語言很新,所以我想重置丟失的密碼,但我遇到ValueError異常,這裏是我的代碼:ValueError異常,當我試圖實現丟失密碼

models.py:

def forgot(request): 
    if request.method == 'POST': 
     try: 
      user = User.objects.get(username=request.POST['username']) 
      lostpassword = LostPassword.objects.create(user=user, key=new_key()) 
      message = 'http://%s:%s/lostpassword/change/%s/' % (
       request.META['SEVER_NAME'], 
       request.META['SEVER_PORT'], 
       lostpassword.key) 
     except User.DoesNotExist: 
      message = 'Unknown user' 
    else: 
     message = '' 
    return render_to_response('homepage/forgot.html', {'message': message}) 

forms.py:

class ForgotForm(forms.Form): 
     help_string="Your password will be emailed to you" 
     user = forms.CharField() 

views.py:

def forgot(request): 
     if request.method == 'POST': 
      try: 
       user = User.objects.get(username=request.POST['username']) 
       lostpassword = LostPassword.objects.create(user=user, key=new_key()) 
       message = 'http://%s:%s/lostpassword/change/%s/' % (
        request.META['SEVER_NAME'], 
        request.META['SEVER_PORT'], 
        lostpassword.key) 
      except User.DoesNotExist: 
       message = 'Unknown user' 
     else: 
      message = '' 
     return render_to_response('homepage/forgot.html', {'message': message}) 

url.py: 

    urlpatterns = patterns('blog.apps.homepage.views', 
url(r'^$', 'index', name='homepage_index'), 
url(r'^about/$', 'about', name='homepage_about'), 
url(r'^contact/$', 'contact', name='homepage_contact'), 
url(r'^archive/$', 'archive', name='homepage_archive'), 
url(r'^login/$', 'login', name='homepage_login'), 
url(r'^register/$', 'register', name='homepage_register'), 
url(r'^gallery/$', 'gallery', name='homepage_gallery'), 
url(r'^profile/$', 'profile', name='homepage_profile'), 
url(r'^welcome/$', 'welcome', name='homepage_welcome'), 
url(r'^validation/$', 'validation', name='homepage_welcome'), 
url(r'^success/$', 'success', name='homepage_success'), 
url(r'^add_organisation/$', 'add_organisation', name='homepage_add_organisation'), 
url(r'^hallo/$', 'hallo', name='homepage_hallo'), 
url(r'^editMe/$', 'editMe', name='homepage_editMe'), 
    url(r'^forgot/$', 'forgot', 'blog.apps.homepage.views.forgot'), 

) 

forgot.html(模板):

<form method="post" action="."> 
    Username: <input type"text" name="username" /> <br /> 
    <input type="Submit"> 
</form> 
<p> 
    {{ message }} 
</p> 

回溯:

Traceback: 
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response 
101. request.path_info) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve 
252. sub_match = pattern.resolve(new_path) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve 
252. sub_match = pattern.resolve(new_path) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve 
156. kwargs.update(self.default_args) 

Exception Type: ValueError at /forgot/ 
Exception Value: dictionary update sequence element #0 has length 1; 2 is required 

它是什麼,我不這樣做行嗎?

+0

你發佈了你的觀點兩次而不是你的模型 - 但更重要的是,你沒有發佈你的網址,這是我認爲錯誤的地方。 –

+0

我添加了url.py代碼。 – Eric

+0

不,請發佈* whole * urls.py。 –

回答

0

url函數的第三個參數應該是一個由傳遞給視圖函數的額外參數組成的字典。出於某種原因,您在那裏有'blog.apps.homepage.views.forgot' - 但您已經設置了查看功能forgot

順便說一句,請注意,Django已經包含一個「重置密碼」功能 - 請參閱the docs

+0

謝謝丹尼爾讓我檢查你建議給我的文檔。 – Eric