是否可以通过模板中的不同操作调用基于类的视图的不同功能

时间:2014-01-30 09:26:06

标签: python django django-class-based-views

我是django的新手,我已经浏览了django的所有文档。现在,如果我们在模板中给出一些链接并在urls.py中定义了该链接,即哪个视图将处理该链接。像这样url(r'^dashboard/gift/$', login_required(CouponPageView.as_view())),

但我有一点疑问,我可以在点击模板中的不同链接时调用视图的不同功能。

1 个答案:

答案 0 :(得分:1)

基于类的视图背后的想法不是为多个资源(模板中链接的目标)提供服务。这个想法是基于类的视图实现各种HTTP方法的方法(即get,post,put,delete,head)。

因此,您可以使用SomeView.get()方法为某个URI的HTTP GET服务,或者您可以从同一SomeView类中的post()方法处理相同资源的POST。这有助于支持面向对象的代码,因为对象上的不同方法通常会共享一些资源。

如果要处理不同的URL,请编写不同的View类。如果它们的功能类似,请使用继承来防止代码重复。如果它们的功能几乎相同,请使用urlpattern中的参数。

我认为您需要更多地研究URL调度程序:https://docs.djangoproject.com/en/dev/topics/http/urls/