如何在django rest框架中通过状态字段获取数据



其实我正在做一个项目。我想通过状态字段获取数据,而不是在Django rest框架中的models.py中创建的id。这是我的源代码
Models.py文件

class employee(models.Model):
name = models.CharField(max_length=50)
salary = models.IntegerField()
phone = models.CharField(max_length=20)
address = models.CharField(max_length=250)
status = models.CharField(max_length=20)

Views.py文件

class employeeviewset(viewsets.ModelViewSet):
queryset = models.employee.objects.all()
serializer_class = serializers.employeeserializer
class employeebystatus(viewsets.ModelViewSet):
def get(self, request, status):
employee = models.employee.objects.filter(status=status)
if employee:
serializer = serializers.employeeserializer(employee, many=True)
return Response(status=200, data=serializer.data)
return Response(status=400, data={'Employee Not Found'})

urls . py文件

router = routers.DefaultRouter()
router.register('employee/<status>/', employeeviewset)

如何使用查询通过状态字段获取数据谁能告诉我答案

如果我正确理解你的问题,你正试图让你的视图通过基于状态而不是user_id过滤来返回雇员模型的实例。如果这是正确的,你应该能够更新你的urls.py文件如下:

router = routers.DefaultRouter()
router.register('employee/', employeeviewset)
router.register('employee/<status>', employeebystatus)

查询从url路径

获取每个用户请求的特定数据
ModelName.objects.get(ColumnName="status")

你也可以试试


class StatusAPIView(APIView):
def get(self,request):
XYZ = ModelName.objects.get(ColumnName="status")
serializer = YourSerializeNAme(XYZ,many=True)
return Response(serializer.data)

最新更新