【发布时间】:2025-12-31 08:35:06
【问题描述】:
我对 Django 和 REST 很陌生,我希望能够指定一个值并让 REST api 只返回满足该值的行。有点像 sql select * from exampleTBL where id = 1 然后返回第一行。但这将通过 url:www.website/api/tmpHost/?id=1 完成,然后通过 REST API 返回第一行
我的看法是这样的:
class tmp_HostList(APIView):
def get (self, request, format=None):
tmp_hosts = tmp_Host.objects.all()
serializer = tmp_HostSerializer(tmp_hosts, many=True, context={'request': request})
return Response(serializer.data)
def post(self, request, format=None):
serializer = tmp_HostSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我的网址看起来像:
url(r'^api/tmpHost/$', views.tmp_HostList.as_view()),
我的序列化器看起来像:
class tmp_HostSerializer(DynamicFieldsMixin, serializers.ModelSerializer):
class Meta:
model = tmp_Host
fields = '__all__'
我该怎么做呢?我在这里看到了解决方案,但它们似乎对我不起作用。我使用 APIView 和我的序列化程序行的区别是:serializer = tmp_HostSerializer(tmp_hosts, many=True, context={'request': request}),而他们的区别很简单:serializer = tmp_HostSerializer
【问题讨论】:
标签: django django-views django-rest-framework