使用 Django REST Framework 读取、更新和创建
Posted
技术标签:
【中文标题】使用 Django REST Framework 读取、更新和创建【英文标题】:Read, update, and create with Django REST Framework 【发布时间】:2015-05-21 15:15:54 【问题描述】:我有一个 ViewSet 定义为
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer_class = ItemSerializer
并将我的网址定义为
router = routers.DefaultRouter()
router.register(r'items', ItemViewSet)
urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
可浏览的 API 工作正常。
我想用 $.ajax() 读取和发送 json。我怎样才能使用我的 ViewSet 来做到这一点?我可以用$.ajax(url: '/api/items/')
之类的东西检索我的所有项目,但我不想硬编码网址。如果我想编辑特定项目怎么办?当我没有保存页面的命名 url 时,我该怎么办?
【问题讨论】:
【参考方案1】:阅读有关 routers 的 DRF 文档
简单地说,你有:
GET /api/items/ #list the items
POST /api/items/ #create new item
GET /api/items/1/ #detail info about item with id=1
PUT /api/items/1/ #update item with id=1
PATCH /api/items/1/ #partial-update item with id=1
DELETE /api/items/1/ #delete item with id=1
【讨论】:
但我没有命名网址。我无法对所有网址进行硬编码 您已将 urls.try 命名为reverse('item-list')
和 reverse('item-detail', args=[1])
。此 url 可以传递给 javascript,以免被硬编码。以上是关于使用 Django REST Framework 读取、更新和创建的主要内容,如果未能解决你的问题,请参考以下文章
Django Rest Framework 和 django Rest Framework simplejwt 两因素身份验证
18-Django REST framework-使用Django开发REST 接口
如何在 django-rest-framework 中为 API 使用 TokenAuthentication
Django-rest-framework 和 django-rest-framework-jwt APIViews and validation Authorization headers