Python 使用django rest框架序列化

Python 使用django rest框架序列化,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有一个名为Artist的模型,我想用Django Rest框架公开这个模型,以创建一个API,并且可以使用这些数据 我在artists/views.py中创建了一个名为ArtistViewSet的基于类的视图 #CBV for rest frameworks from rest_framework import viewsets class ArtistViewSet(viewsets.ModelViewSet): model = Artist 我在url.py文件中还有一个名为a

我有一个名为Artist的模型,我想用Django Rest框架公开这个模型,以创建一个API,并且可以使用这些数据

我在artists/views.py中创建了一个名为ArtistViewSet的基于类的视图

#CBV for rest frameworks
from rest_framework import viewsets

class ArtistViewSet(viewsets.ModelViewSet):
    model = Artist
我在url.py文件中还有一个名为api/的url(查看名为api/的第三个url),用户可以访问上面提到的视图

# 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)),

)
当我转到浏览器并键入时,我收到以下消息错误:


在Django REST framework 2.4+(包括3.0+)中,视图的
model
属性已被弃用并删除。这意味着您应该将视图定义为

from rest_framework import viewsets

class ArtistViewSet(viewsets.ModelViewSet):
    queryset = Artist.objects.all()
这会给你带来你期望的结果。现在,你在评论中问道

我无法理解base_name的角色。我的意思是,这个基本名称就是我创建的url?我的viewset
ArtistViewSet
没有
queryset
属性,因此,根据文档,有必要放置base_name参数,但我不知道如何操作

在为自动生成的路线命名时,可使用注册
ViewSet
时可选定义的
base\u名称
。默认情况下,格式为
[base]-list
[base]-detail
,其中
[base]
是可以定义的
基本名称。如果未指定自己的
基本名称
将根据模型名称自动生成。由于必须为
ViewSet
实例定义
queryset
方法,因此在此处检索模型(以及更高版本的模型名称)。由于没有提供
queryset
参数,Django REST框架会触发一个错误,因为它无法生成
base\u名称

引自

注意:
base\u name
参数用于指定视图名称模式的初始部分


文档进一步详细解释了出现问题的原因,甚至包括一个示例,以及如何解决问题。

在Django REST framework 2.4+(包括3.0+)中,视图的
model
属性已被弃用并删除。这意味着您应该将视图定义为

from rest_framework import viewsets

class ArtistViewSet(viewsets.ModelViewSet):
    queryset = Artist.objects.all()
这会给你带来你期望的结果。现在,你在评论中问道

我无法理解base_name的角色。我的意思是,这个基本名称就是我创建的url?我的viewset
ArtistViewSet
没有
queryset
属性,因此,根据文档,有必要放置base_name参数,但我不知道如何操作

在为自动生成的路线命名时,可使用注册
ViewSet
时可选定义的
base\u名称
。默认情况下,格式为
[base]-list
[base]-detail
,其中
[base]
是可以定义的
基本名称。如果未指定自己的
基本名称
将根据模型名称自动生成。由于必须为
ViewSet
实例定义
queryset
方法,因此在此处检索模型(以及更高版本的模型名称)。由于没有提供
queryset
参数,Django REST框架会触发一个错误,因为它无法生成
base\u名称

引自

注意:
base\u name
参数用于指定视图名称模式的初始部分


文档进一步详细解释了出现问题的原因,甚至包括一个示例,以及如何解决问题。

在Django REST framework 2.4+(包括3.0+)中,视图的
model
属性已被弃用并删除。这意味着您应该将视图定义为

from rest_framework import viewsets

class ArtistViewSet(viewsets.ModelViewSet):
    queryset = Artist.objects.all()
这会给你带来你期望的结果。现在,你在评论中问道

我无法理解base_name的角色。我的意思是,这个基本名称就是我创建的url?我的viewset
ArtistViewSet
没有
queryset
属性,因此,根据文档,有必要放置base_name参数,但我不知道如何操作

在为自动生成的路线命名时,可使用注册
ViewSet
时可选定义的
base\u名称
。默认情况下,格式为
[base]-list
[base]-detail
,其中
[base]
是可以定义的
基本名称。如果未指定自己的
基本名称
将根据模型名称自动生成。由于必须为
ViewSet
实例定义
queryset
方法,因此在此处检索模型(以及更高版本的模型名称)。由于没有提供
queryset
参数,Django REST框架会触发一个错误,因为它无法生成
base\u名称

引自

注意:
base\u name
参数用于指定视图名称模式的初始部分


文档进一步详细解释了出现问题的原因,甚至包括一个示例,以及如何解决问题。

在Django REST framework 2.4+(包括3.0+)中,视图的
model
属性已被弃用并删除。这意味着您应该将视图定义为

from rest_framework import viewsets

class ArtistViewSet(viewsets.ModelViewSet):
    queryset = Artist.objects.all()
这会给你带来你期望的结果。现在,你在评论中问道

我无法理解base_name的角色。我的意思是,这个基本名称就是我创建的url?我的viewset
ArtistViewSet
没有
queryset
属性,因此,根据文档,有必要放置base_name参数,但我不知道如何操作

注册
视图集时可以选择定义的
base\u名称