2010-01-09 52 views
9

我收到一個奇怪的錯誤,不知道爲什麼。我會很感激任何輸入。我一直堅持這幾天。這裏是我的代碼:Django中的ValueError

models.py

class Employee(models.Model): 
    lastname = models.CharField(max_length=75) 
    firstname = models.CharField(max_length=75) 
    position = models.ForeignKey(Position) 
    jurisdiction = models.ForeignKey(Jurisdiction) 
    basepay = models.FloatField() 
    ot = models.FloatField() 
    benefits = models.FloatField() 
    totalpay = models.FloatField() 

    class Meta: 
     ordering = ['lastname', 'firstname'] 
    def __unicode__(self): 
     return "%s %s" % (self.firstname, self.lastname) 
    def full_name(self): 
     return "%s, %s" % (self.lastname, self.firstname) 
    def get_absolute_url(self): 
     return "/salaries/employee/%s/" % self.id 

urls.py

from django.conf.urls.defaults import * 
from djangodemo.salaries.models import Employee 
from django.views.generic import list_detail 

employee_info = { 
    "queryset" : Employee.objects.all(), 
    "template_name" : "salaries/employee.html", 
} 

urlpatterns = patterns('',  
    (r'^salaries/employee/$', list_detail.object_list, 'employee_info'), 
) 

employee.html

{{ object_list }} 

當我運行python manage.py runserver命令,看看http://127.0.0.1:8000/salaries/employee在我的瀏覽器中,我收到此錯誤:

Traceback (most recent call last): 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\servers\basehttp.py", line 279, in run 
    self.result = application(self.environ, self.start_response) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\servers\basehttp.py", line 651, in __call__ 
    return self.application(environ, start_response) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\handlers\wsgi.py", line 241, in __call__ 
    response = self.get_response(request) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\handlers\base.py", line 73, in get_response 
    response = middleware_method(request) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\middleware\common.py", line 57, in process_request 
    _is_valid_path("%s/" % request.path_info)): 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\middleware\common.py", line 142, in _is_valid_path 
    urlresolvers.resolve(path) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\urlresolvers.py", line 294, in resolve 
    return get_resolver(urlconf).resolve(path) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\urlresolvers.py", line 218, in resolve 
    sub_match = pattern.resolve(new_path) 

    File "F:\django\instantdjango\Python26\Lib\site-packages\django\core\urlresolvers.py", line 123, in resolve 
    kwargs.update(self.default_args) 

ValueError: dictionary update sequence element #0 has length 1; 2 is required 

回答

16
urlpatterns = patterns('',  
    (r'^salaries/employee/$', list_detail.object_list, 'employee_info'), 
) 

元組的第三個項目必須是一個字典,而不是一個字符串。嘗試圍繞employee_info刪除單引號:

urlpatterns = patterns('',  
    (r'^salaries/employee/$', list_detail.object_list, employee_info), 
) 
+0

這做到了。謝謝! – Wally 2010-01-09 04:50:51

1

可能是你指的是URL name

urlpatterns = patterns('',  
    (r'^salaries/employee/$', list_detail.object_list, name='employee_info'), 
)