Python 在Django中,如何从URL传递参数以在VirtualDownloadView中获取_file()?

Python 在Django中,如何从URL传递参数以在VirtualDownloadView中获取_file()?,python,django,django-views,Python,Django,Django Views,下面是我的Django项目的一部分 我已配置了以下URL urlpatterns = patterns( url(r'^download/(?P<job>[0-9]+)/$', DownloadJobResults.as_view(), name='dm_download') ) 我最终将使用job参数查找作业数据并返回一个文件。但我无法通过参数。当我访问该URL时,我得到: get_file()正好接受2个参数(给定1个) 这是完整的堆栈跟踪 Traceback: Fil

下面是我的Django项目的一部分

我已配置了以下URL

urlpatterns = patterns(
    url(r'^download/(?P<job>[0-9]+)/$', DownloadJobResults.as_view(), name='dm_download')
)
我最终将使用job参数查找作业数据并返回一个文件。但我无法通过参数。当我访问该URL时,我得到:

get_file()正好接受2个参数(给定1个)

这是完整的堆栈跟踪

Traceback: File "/Users/michael/app/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                     response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/michael/app/lib/python2.7/site-packages/django/views/generic/base.py" in view
  69.             return self.dispatch(request, *args, **kwargs) File "/Users/michael/app/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
  87.         return handler(request, *args, **kwargs) File "/Users/michael/app/lib/python2.7/site-packages/django_downloadview/views/base.py" in get
  170.         return self.render_to_response() File "/Users/michael/app/lib/python2.7/site-packages/django_downloadview/views/base.py" in render_to_response
  154.             self.file_instance = self.get_file()

Exception Type: TypeError at /dm/download/5/ Exception Value: get_file() takes exactly 2 arguments (1 given)

我已经解决了这个问题。基本上,Django将这些命名的URL参数放在kwargs中

class DownloadJobResults(VirtualDownloadView):

    def get_file(self):

        print "Job is {}".format(self.kwargs.get("job",None))

        file = StringIO.StringIO()
        file.write("test 1,2,3,4\n")
        file.write("test 5,6,7,8\n")
        file.seek(0)
        return VirtualFile(file, name='sweet.txt')

请张贴完整的stacktrace!我们需要了解如何调用
get\u file()
!我已经用回溯更新了帖子。
VirtualDownloadView
看起来怎么样?VirtualDownloadView是一个已安装的库。
class DownloadJobResults(VirtualDownloadView):

    def get_file(self):

        print "Job is {}".format(self.kwargs.get("job",None))

        file = StringIO.StringIO()
        file.write("test 1,2,3,4\n")
        file.write("test 5,6,7,8\n")
        file.seek(0)
        return VirtualFile(file, name='sweet.txt')