【发布时间】:2019-03-07 05:25:21
【问题描述】:
我想添加状态并将序列化器的输出放入数据中:
我的模特:
class UserDetails(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
user_group_id = models.ForeignKey(UserGroup, on_delete=models.CASCADE)
admin_photo = models.ImageField(upload_to='user_image',blank=True)
我的序列化器:
class UserDetailSerializer(serializers.ModelSerializer):
user = serializers.StringRelatedField(many=False)
user_group_id = serializers.StringRelatedField(many=False)
class Meta:
model = UserDetails
fields = [
'user',
'user_group_id',
'admin_photo',
]
depth = 1
def to_representation(self, instance):
data = super(UserDetailSerializer, self).to_representation(instance)
return {
'STATUS' : 'SUCCESS',
'DATA' : data
}
我得到的回应是这样的:
[
{
"DATA": {
"user": "user1",
"user_group_id": "Super Admin",
"admin_photo": "http://www.someurl.com/media/22-black-wallpaper.jpg"
},
"STATUS": "SUCCESS"
},
{
"DATA": {
"user": "user2",
"user_group_id": "Admin",
"admin_photo": "http://www.someurl.com/media/fox.jpg"
},
"STATUS": "SUCCESS"
}
]
但我想要这样的响应,状态是基本文本,我想将 Class meta 的结果放入 DATA
{
"STATUS": "SUCCESS",
"DATA": [
{
"user": "user1",
"user_group_id": "Super Admin",
"admin_photo": "http://www.someurl.com/media/22-black-
wallpaper.jpg"
},
{
"user": "user2",
"user_group_id": "Admin",
"admin_photo": "http://www.someurl.com/media/fox.jpg"
}
]
}
已编辑 仅使用 listapiview 查看并使用序列化程序类:
class UserListView(generics.ListAPIView):
lookup_vield = 'id'
serializer_class = UserDetailSerializer
def get_queryset(self):
return UserDetails.objects.all()
【问题讨论】:
-
首先,
STATUS是什么意思?会有多个Status的机会吗? -
此外,请添加您当前的视图
-
@JPG 成功或失败
-
是否有机会在一个响应中出现多个状态?
-
@JPG 没有单一的状态,成功或失败
标签: python django python-3.x django-rest-framework