2010-01-09 14 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 }} 

जब मैं अजगर 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

1

आप URL मतलब name हो सकता है:

urlpatterns = patterns('',  
    (r'^salaries/employee/$', list_detail.object_list, name='employee_info'), 
) 
संबंधित मुद्दे