你能帮我解决这个问题吗?
我的应用程序使用Django和REST框架。
我想在django模型中检索1列的不同值,为此我使用了一个带有链接过滤器的查询集和一个带有选项many=True的序列化程序。
这是我的代码:
指定的查询集:
queryset = CollectedCompaniesInfo.objects.all()
queryset = queryset.only('branch').distinct('branch')
预期结果:
[{
"id": 16,
"branch": "McDonald's"
},
{
"id": 80,
"branch": "Wendy's"
}]
我得到:
[
{
"id": 16,
"branch": "McDonald's",
"latitude": "35.94905003",
"longitude": "-81.18771815",
"state": "North Carolina",
"address": "561 W Main Ave Taylorsville NC 28681 United States",
"open_hours": "Mon-Sun 5 am - 11pm",
"coordinate_x": 35.94905003,
"coordinate_y": -81.18771815
},
{
"id": 80,
"branch": "Wendy's",
"latitude": "35.24987478",
"longitude": "-80.95769756",
"state": "North Carolina",
"address": "5501 Birmingham Pkwy Concourse A Charlotte NC 28208 United States",
"open_hours": "Sun - Thu 6:30am -2am/Fri-Sat 6:30am -3am",
"coordinate_x": 35.249874778495084,
"coordinate_y": -80.95769756353488
}]
视图集操作代码:
serializer = CollectedCompaniesInfoModelSerializer(queryset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
您可以指定哪个fields
应包含在fields
中,哪个exclude
应排除在中
class CollectedCompaniesInfoModelSerializer(serializers.ModelSerializer):
class Meta:
model =. CollectedCompaniesInfo
fields = ('id', 'branch')
如果要将id
和branch
指定为只读,则可以使用read_only_fields
作为
class CollectedCompaniesInfoModelSerializer(serializers.ModelSerializer):
class Meta:
model =. CollectedCompaniesInfo
fields = '__all__'
read_only_fields = ('id', 'branch')