小编Mar*_*ies的帖子

具有多个视图集的Django Rest Framework路由器

我正在尝试使用DRF 3.1创建API.我首先使用ModelViewSet创建管理功能并使用DefaultRouter注册这些功能.这非常有效,默认API根视图在浏览器中查看时生成了相应的链接.然后,我使用ReadOnlyModelViewSet为标准用户创建了更多受限制的视图集,当我尝试使用路由器注册这些受限制的视图集时出现问题,因为ReadOnlyModelViewSets似乎覆盖了API根视图上的链接.生成的URL在键入浏览器时似乎有效,但API根视图上的链接并不像我预期的那样

serializers.py

class AdminUnitSerializer(serializers.HyperlinkedModelSerializer):
'''
model serializer for admin users containing all fields

'''

url = HyperlinkedIdentityField(view_name='unit-detail')

class Meta:
    model = Unit
    fields = ('url', 'id', 'name', 'symbol', 'converters_from', 'converters_to')

class UserUnitSerializer(serializers.HyperlinkedModelSerializer):
'''
model serializer for standard users containing restricted set of fields

'''

url = HyperlinkedIdentityField(view_name='unit-detail')

class Meta:
    model = Unit
    fields = ('url', 'id', 'name', 'symbol')
Run Code Online (Sandbox Code Playgroud)

views.py

class AdminUnitViewSet(viewsets.ModelViewSet):
'''
simple viewset providing CRUD operations on unit objects

'''

queryset = models.Unit.objects.all()
serializer_class = serializers.AdminUnitSerializer
permission_classes = …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

9
推荐指数
1
解决办法
2407
查看次数

标签 统计

django ×1

django-rest-framework ×1