我有名为Artist的模型,我想用Django Rest Framework公开这个模型来创建一个API并且可以使用这些数据。用Django Rest框架序列化
我创建了一个艺术家一类基于视图/ views.py命名ArtistViewSet
#CBV for rest frameworks
from rest_framework import viewsets
class ArtistViewSet(viewsets.ModelViewSet):
model = Artist
我也有一个名为API/URL一个在urls.py文件(查看第三URL命名的API /),这用户可以访问上面提到的视图。
# coding=utf-8
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
from rest_framework import routers
from artists.views import ArtistViewSet
#I create a router by default
router = routers.DefaultRouter()
#Register the model 'artists' in ArtistViewSet
router.register(r'artists', ArtistViewSet)
urlpatterns = patterns('',
(r'^grappelli/', include('grappelli.urls')), # grappelli URLS
url(r'^admin/', include(admin.site.urls)),
#Include url api/ with all urls of router
url(r'^api/', include(routers.urls)),
)
当我去我的浏览器,键入http://localhost:8000/api/我得到这个消息的错误:
什么可以发生在我?
您需要指定'base_name'。阅读[路由器](http://www.django-rest-framework.org/api-guide/routers/)。它特别提到你得到的错误。 – norbertpy 2015-02-11 19:06:16
@norbertpy谢谢。我无法理解base_name的名称。我的意思是,这个基地名称是我创建的网址?我的视图ArtistViewSet没有queryset属性,由于这个原因,根据文档,它需要base_name参数,但我不知道该怎么做。对不起,这个新手问题。 – bgarcial 2015-02-11 19:29:23