基于 Django class 的视图 - 直接 url 到 class 中的特定方法

Django class based views - Direct url to particular method in class

我使用基于函数的视图已经有一段时间了,但直到现在才使用过基于 class 的视图。我当前的项目需要跨多个视图的大量通用代码,因此我正在探索基于 class 的视图,以便我可以使用继承。

我的要求是将 url 指向 class 中的特定函数。类似于可以在 django admin 上完成的操作。在 Django 管理中,我在继承自 ModelAdmin 的 class 中使用了 get_urls 方法,将 url 指向 class 方法。

def get_urls(self):
    try:
        from django.conf.urls.defaults import patterns, url

        urls = super(MyModelAdmin, self).get_urls() 

        my_urls = patterns('',
                       url(r'^myurl/(?P<obj_id>\d+)/$',
                           self.admin_site.admin_view(self.myFunction),
                           name="my_function"),
                         )

        return my_urls + urls
    except Exception, e:
        logger.error(e)

方法myFunction只是调用了views.py中的一个方法,并传递请求对象和对象id。我的文档是 here

是否可以对基于 class 的视图做类似的事情?到目前为止,从我的搜索中我找不到任何文档显示将函数指针传递给 as_view 方法的可能性,这是我们可以执行 admin_view 方法的方式。请指导我或指出正确的文档。

由于历史原因,管理视图与 Django 的其他基于 class 的视图非常不同,因此将一个实现从一个实现转移到另一个实现可能很棘手。

常规 CBV 旨在连接到特定的 url 模式,它们并非旨在将不同的 url 分派到不同的视图,因此实现了 get_urls 方法真的没有意义。