2011-09-20 35 views
1

我有这样的网址http://gagandeepdesk/2690/我正在用urls.py文件过滤和发送2690作为函数的参数之一。Django错误'太多值解压缩'objects.get(id)

我urls.py过滤器看起来像这样,

url(r'^(\d+)/', 'scango.scanner.views.download'), 

而且该功能看起来像这样,

def download(request, MediaId): 
    media = Media.objects.get(id=int(MediaId)) 
    #print media 
    return HttpResponse(FileIterWrapper(open(media.path))) 

我收到错误 '值过多解压' 上线

media = Media.objects.get(id=int(MediaId)) 

我也尝试运行此功能独立没有请求对象,它运行得很好。所以,我很困惑我在这里做错了什么。

环境:

Request Method: GET 
Request URL: http://gagandeepdesk/2690/ 

Django Version: 1.3 
Python Version: 2.7.1 
Installed Applications: 
['haystack', 
'scanner', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware') 

回溯:

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "C:\Users\gagasing\Desktop\ideas\scango\..\scango\scanner\views.py" in download 
    21. media = Media.objects.get(id=int(MediaId)) 
File "C:\Python27\lib\site-packages\django\db\models\manager.py" in get 
    132.   return self.get_query_set().get(*args, **kwargs) 
File "C:\Python27\lib\site-packages\django\db\models\query.py" in get 
    343.   clone = self.filter(*args, **kwargs) 
File "C:\Python27\lib\site-packages\django\db\models\query.py" in filter 
    552.   return self._filter_or_exclude(False, *args, **kwargs) 
File "C:\Python27\lib\site-packages\django\db\models\query.py" in _filter_or_exclude 
    570.    clone.query.add_q(Q(*args, **kwargs)) 
File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in add_q 
    1170.        can_reuse=used_aliases, force_having=force_having) 
File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in add_filter 
    1013.   arg, value = filter_expr 

Exception Type: ValueError at /2690/ 
Exception Value: too many values to unpack 
+2

发布完整的追溯。如果你打印MediaId,你会得到什么? – agf

+0

@agf增加了完整的追溯。它没有达到印刷说明。 –

+0

@gag:这是因为它应该在'get' – Pannu

回答

4
(r'^(?P<MediaId>\d+)/$', 'scango.scanner.views.download') 

也许试试这个呢?

这是一个命名组的例子。

在Python正则表达式,其语法为名为正则表达式 基团是(?Ppattern),其中名称是组的名称和 图案是一些图案相匹配。

+0

的同时使用'pk'而不是'id'我尝试了他的模式并打印出数字。尽管如此,我会用与你一样的模式。 – JackLeo

相关问题