pip install django-tastypie
python
INSTALLED_APPS = [
...
'tastypie',
]
python
from django.conf.urls import url, include
from tastypie.api import Api
from myapp.api import MyResource1, MyResource2
v1_api = Api(api_name='v1')
v1_api.register(MyResource1())
v1_api.register(MyResource2())
urlpatterns = [
...
url(r'^api/', include(v1_api.urls)),
]
python
from tastypie.resources import ModelResource
from myapp.models import MyModel
class MyResource1(ModelResource):
class Meta:
queryset = MyModel.objects.all()
allowed_methods = ['get', 'post', 'put', 'delete']
resource_name = 'myresource1'
filtering = {
'field1': ['exact', 'in', 'range', 'gt', 'lt'],
}
class MyResource2(ModelResource):
class Meta:
queryset = MyModel.objects.all()
allowed_methods = ['get']
resource_name = 'myresource2'
list_allowed_methods = ['get']
detail_allowed_methods = []
fields = ['field1', 'field2']
ordering = ['field1']