Python Django中的ValueError
我犯了一个奇怪的错误,不知道为什么。如果您有任何意见,我将不胜感激。这件事我已经坚持了好几天了。这是我的密码: models.pyPython Django中的ValueError,python,django,Python,Django,我犯了一个奇怪的错误,不知道为什么。如果您有任何意见,我将不胜感激。这件事我已经坚持了好几天了。这是我的密码: models.py class Employee(models.Model): lastname = models.CharField(max_length=75) firstname = models.CharField(max_length=75) position = models.ForeignKey(Position) jurisdic
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
url.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
元组中的第三项需要是字典,而不是字符串。尝试删除员工信息周围的单引号:
urlpatterns = patterns('',
(r'^salaries/employee/$', list_detail.object_list, employee_info),
)
您的意思可能是URL
名称
:
urlpatterns = patterns('',
(r'^salaries/employee/$', list_detail.object_list, name='employee_info'),
)
urlpatterns = patterns('',
(r'^salaries/employee/$', list_detail.object_list, name='employee_info'),
)