如何在一个类的每个请求中使用不同的查找字段

Posted

技术标签:

【中文标题】如何在一个类的每个请求中使用不同的查找字段【英文标题】:How to use different lookup field in each request of one class 【发布时间】:2021-12-23 18:49:00 【问题描述】:

想要通过使用不同的查找字段来访问不同的请求。我在django rest框架的视图中使用了路由器中的simpleouter和ModelViewSet。

预期用例示例:

执行更新的url - /user/id/

执行删除的url-/user/creation_date/

请帮忙解决问题。

谢谢。

【问题讨论】:

这不是简单路由器的工作方式,您需要手动设置 URL。另外,你为什么要使用creation_date 这真的很糟糕——因为它不是唯一的。使用 id 删除用户。 感谢您的评论。上面的用例只是问题的一个例子。 我已经通过自定义simpleouter解决了这个问题。 【参考方案1】:

您可以制作自定义 api 视图并收集您想要用来做任何事情的字段。在这种情况下,不要通过 url 传递任何键。使用请求的数据传递密钥。

例子:

class UserAPIView(APIView):
    
    def post(self, request, *args, **kwargs):

        email = request.data.get('email', None)
        pk = request.data.get('pk', None)
        #  you can use the email or id or any field that you posted to do your work below like update delete etc. 
        
        # Return your response  
        return Response('details': 'email and password is required', status=status.HTTP_204_NO_CONTENT)

【讨论】:

以上是关于如何在一个类的每个请求中使用不同的查找字段的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中的 Queue 对象中查找不同字典中的键?

iOS Swift:如何根据特定属性查找不同类型数组的唯一成员

如何使用 UIPickerView 在一个视图中填充不同的文本字段?

如何查找两个不同日期字段SQL在一定时间间隔内是不是匹配?

如何有效地比较同一类的两个对象并检查哪些是不同的字段?

如何在IDEA中查找指定类的所有变量并将其替换为同名