Django 带有对象的URL
我的URL.py中有一个元素Django 带有对象的URL,django,Django,我的URL.py中有一个元素 url(r'^name/(?P<some_id>.+)/$', Class(), name='name'), url(r'^name/(?P.+)/$),Class(),name='name'), 有可能在课堂上收到一些id吗?你可以用decorator来完成 def accepts_some_object(f): def new_f(request, some_object_id, *args, **kwargs): som
url(r'^name/(?P<some_id>.+)/$', Class(), name='name'),
url(r'^name/(?P.+)/$),Class(),name='name'),
有可能在课堂上收到一些id吗?你可以用decorator来完成
def accepts_some_object(f):
def new_f(request, some_object_id, *args, **kwargs):
some_object = get_object_or_404(...)
return f(request, *args, **kwargs, some_object=some_object)
return new_f
@accepts_some_object
def some_view(request, some_object)
如果您有许多视图接受某个对象,当您将类实例作为视图传递时,将执行其调用方法。传递的参数与基于函数的视图中的参数相同(除了作为第一个参数的
self
)。在正则表达式中捕获的文本将作为字符串传递给函数/方法。()
如果您还不知道这一点,Django将从1.3版开始使用基于类的视图(除了基于函数的视图) 小心:这不是线程安全的。此过程中的每个调用都将使用相同的
类
实例。
class A(object):
def __call__(self, request, some_id):
# stuff