Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ValueError in Django

Tags:

python

django

I'm getting a strange error and can't figure out why. I'd appreciate any input. I've been stuck on this for a few days. Here is my code:

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 }}

When I run python manage.py runserver and look at http://127.0.0.1:8000/salaries/employee in my browser, I get this error:

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
like image 952
Wally Avatar asked Jan 09 '10 04:01

Wally


People also ask

What is django ValueError?

Overview. ValueError in Python is raised when a user gives an invalid value to a function but is of a valid argument. It usually occurs in mathematical operations that will require a certain kind of value, even when the value is the correct argument.

How to handle exceptions in django?

Django Exception Example It raises a DoesNotExist exception if data not found. This is Django's built-in exception. It shows the following exception because no record is available at id 12. We can handle it by using try and except, now let's handle this exception.

How do you resolve ValueError?

To resolve the ValueError exception, use the try-except block. The try block lets you test a block of code for errors. The except block lets you handle the error.

Does django use multiprocessing?

Django Q is a native Django task queue and worker application using Python multiprocessing.


1 Answers

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

The third item in the tuple needs to be a dictionary, not a string. Try removing the single quotes around employee_info:

urlpatterns = patterns('',     
    (r'^salaries/employee/$', list_detail.object_list, employee_info),
)
like image 115
Roy Tang Avatar answered Oct 11 '22 21:10

Roy Tang