Ajax 使用Django REST框架读取、更新和创建

Ajax 使用Django REST框架读取、更新和创建,ajax,django,rest,django-rest-framework,django-rest-auth,Ajax,Django,Rest,Django Rest Framework,Django Rest Auth,我有一个定义为的视图集 class ItemViewSet(viewsets.ModelViewSet): queryset = Item.objects.all() serializer_class = ItemSerializer 并将我的URL定义为 router = routers.DefaultRouter() router.register(r'items', ItemViewSet) urlpatterns = patterns('', url(r'^

我有一个定义为的视图集

class ItemViewSet(viewsets.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer
并将我的URL定义为

router = routers.DefaultRouter()

router.register(r'items', ItemViewSet)

urlpatterns = patterns('',
    url(r'^api/', include(router.urls)),
可浏览的API工作正常

我想用$.ajax()读取和发送json。如何使用视图集执行此操作?我可以用
$.ajax({url:'/api/items/'})
之类的东西检索我的所有项目,但我不想硬编码url。如果我想编辑一个特定的项目怎么办?当我没有保存页面的命名url时,我该怎么做呢?

阅读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

但我没有命名的URL。我无法硬编码我所有的URL。请尝试
reverse('item-list')
reverse('item-detail',args=[1])
。此URL可以传递给javascript,以避免硬编码。