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)
这会导致名称错误(
)未定义名称“请求”
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)