Django: сопоставить URL с классом, как в web.py - PullRequest
0 голосов
/ 10 сентября 2011

Я изучаю django, но сначала попробовал web.py. Читая документацию Django, я обнаружил, что мне нужно проверить тип запроса в каждом методе, например:

def myview():
  if request.method == "POST":
    #blah balh 
    #ke$ha (jst kiddn)
  else:
    #(balh)x2

могут ли классы типов web.py быть реализованы в django как

class myView():
 def GET(self):
   #cool
 def POST(self):
   #double cool

это было бы очень круто

1 Ответ

3 голосов
/ 10 сентября 2011

Да, это возможно с новыми (как в Django 1.3) представлениями на основе классов :

from django.views.generic.base import View

class MyView(View):

    def get(self, request, *args, **kwargs):
        # return a response here

    def post(self, request, *args, **kwargs):
        # return a response here

Обычно вам не нужно использовать базу ViewКласс, есть много видов, которые ориентированы на все виды дел, например, TemplateView или FormView.Reinout van Rees имеет два отличных поста в блоге, в которых подробно рассказывается:

http://reinout.vanrees.org/weblog/2011/08/24/class-based-views-walkthrough.html

http://reinout.vanrees.org/weblog/2011/08/24/class-based-views-usage.html

...