поршень-джанго, сколько методов должен содержать один обработчик - PullRequest
0 голосов
/ 24 июня 2011

Я создаю класс обработчика для каждого метода, который я хочу отобразить в файл URL.Мой подход правильный или неправильный?потому что я, кажется, не могу найти способ сопоставить ресурс с методом, который они все отображают на весь класс.

С уважением,

1 Ответ

0 голосов
/ 24 июня 2011

Документация кажется очень четкой https://bitbucket.org/jespern/django-piston/wiki/Documentation#!resources

from piston.handler import BaseHandler
from myapp.models import Blogpost

class BlogpostHandler(BaseHandler):
   allowed_methods = ('GET',)
   model = Blogpost   

   def read(self, request, post_slug):
      ...

Поршень позволяет вам сопоставлять ресурсы с моделями, и, таким образом, он сделает для вас большую работу.

Ресурс может быть просто классом, но обычно вы хотите определить по крайней мере 1 из 4 методов:

read вызывается для запросов GET и никогда не должен изменять данные (идемпотент.)

create вызывается на POST и создает новые объекты и должен возвращать их (или rc.CREATED.)

update вызывается на PUT и должен обновлять существующий продукти вернуть их (или rc.ALL_OK.)

delete вызывается при УДАЛЕНИИ и должен удалить существующий объект.Ничего не должно возвращать, просто rc.DELETED.

Также https://bitbucket.org/jespern/django-piston/wiki/Documentation#!mapping-urls

В urls.py:

from django.conf.urls.defaults import *
from piston.resource import Resource
from mysite.myapp.api.handlers import BlogpostHandler

blogpost_handler = Resource(BlogpostHandler)

urlpatterns = patterns('',
   url(r'^blogpost/(?P<post_slug>[^/]+)/', blogpost_handler),
   url(r'^blogposts/', blogpost_handler),
)
...