【发布时间】:2021-11-08 14:28:13
【问题描述】:
我有这样的看法:
class UserDetail(generics.RetrieveDestroyAPIView):
permission_classes = [IsAuthenticatedOrReadOnly]
queryset = User.object.all()
serializer_class = UserSerializer
def get_object(self, queryset=None, **kwargs):
item = self.kwargs.get('pk')
return generics.get_object_or_404(User, id=item)
这样的序列化器:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'first_name', 'last_name', 'city']
和这样的网址:
path('<uuid:pk>', UserDetail.as_view(), name='user_detail')
我是否可以只使用一个视图和一个序列化程序在一种情况下获取所有数据(id、fist_name、last_name 和 city),而在另一种情况下只使用 json 获取城市?或者也许我必须为它创建一个特别是这样的新视图和序列化器:
class UserCity(generics.RetrieveDestroyAPIView):
permission_classes = [IsAuthenticatedOrReadOnly]
queryset = User.object.all()
serializer_class = UserJustCitySerializer
def get_object(self, queryset=None, **kwargs):
item = self.kwargs.get('pk')
return generics.get_object_or_404(User, id=item)
和
class UserJustCitySerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['city']
【问题讨论】:
-
你能说出你想要列出数据的条件吗?
-
我只需要在一个子页面上显示所有用户信息,而在另一个子页面上只显示城市
标签: django serialization django-rest-framework view