Python 在Django中将参数传递给视图

Python 在Django中将参数传递给视图,python,django,python-3.x,django-views,parameter-passing,Python,Django,Python 3.x,Django Views,Parameter Passing,在我的urls.py中,我将handler404设置为CustomErrorViewCustomErrorView是一个通用视图,它根据收到的错误消息和错误代码生成错误模板 由于handler404仅在发生404错误时才会引发,因此每当引发errorcode=404kwarg时,我如何将其发送到CustomErrorView 已经试过了- handler404=CustomErrorView(errorcode=404) 这会导致“预期为一个位置参数,无给定错误。” handler404=Cu

在我的
urls.py
中,我将
handler404
设置为
CustomErrorView
CustomErrorView
是一个通用视图,它根据收到的错误消息和错误代码生成错误模板

由于
handler404
仅在发生404错误时才会引发,因此每当引发
errorcode=404
kwarg时,我如何将其发送到
CustomErrorView

已经试过了-

  • handler404=CustomErrorView(errorcode=404)

    这会导致“预期为一个位置参数,无给定错误。”
  • handler404=CustomErrorView(请求,errorcode=404)

    这会导致名称错误(
    未定义名称“请求”
My URL.py:

from django.conf.urls import url, include
from django.contrib import admin
from blog_user.views import home, create_error_view

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', home),
    url(r'^', include('user_manager.urls')),
    ]

handler404 = create_error_view(error = 404)
handler500 = create_error_view(error = 500)
My views.py(使用@knbk建议的修改后):


可以使用函数闭包创建视图函数:

def create_error_view(error_code):
    def custom_error_view(request, *args, **kwargs):
        # You can access error_code here
    return custom_error_view
然后只需调用
create\u error\u view
即可设置处理程序:

handler404 = create_error_view(error_code=404)
或者您可以使用
functools.partial()
,其基本功能相同:

from functools import partial

handler404 = partial(custom_error_view, error_code=404)

如果需要我的任何代码来解决此问题,请询问。
CustomErrorView
是基于类的视图吗?子类化Django的
视图
?@knbk否。。这是一个基于函数的(正常)视图。使用URL发布您的视图。pyNow我发现一些中间件错误:
“function”对象没有属性“get”
@prithvishbaidia Traceback?无法获取回溯,因为只有当
DEBUG=False
from functools import partial

handler404 = partial(custom_error_view, error_code=404)