Python 使用django rest框架序列化
我有一个名为Artist的模型,我想用Django Rest框架公开这个模型,以创建一个API,并且可以使用这些数据 我在artists/views.py中创建了一个名为ArtistViewSet的基于类的视图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
#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?我的viewsetArtistViewSet
没有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?我的viewsetArtistViewSet
没有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?我的viewsetArtistViewSet
没有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?我的viewsetArtistViewSet
没有queryset
属性,因此,根据文档,有必要放置base_name参数,但我不知道如何操作
注册视图集时可以选择定义的base\u名称