Django 带有对象的URL

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.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):
        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