基于 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
方法真的没有意义。
我使用基于函数的视图已经有一段时间了,但直到现在才使用过基于 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
方法真的没有意义。