python - 根据请求验证(Django Rest 框架)序列化器字段
问题描述
我正在尝试基于 Request 对象验证 DRF 序列化程序 CharField。必须根据其他数据库值检查提供的值的唯一性,这些值根据请求进行过滤。
我尝试设置一个 to_representation 方法,但它在检索数据时也会运行。
解决方案
你在谈论这样的事情吗?
class FooSerializer(serializers.Serializer):
bar = serializers.CharField(max_length=100)
filter1 = serializers.CharField(max_length=100)
filter2 = serializers.CharField(max_length=100)
def validate(self, data):
print('bar value:', data.get('bar'))
print('filter1 value:', data.get('filter1'))
print('filter2 value:', data.get('filter2'))
# Put your conditions and queries here and raise serializers.ValidationError() if they don't match
return data
serializer = FooSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
推荐阅读
- opengl - uint64_t 类型数组的 UBO 填充
- reactjs - 反应不变违规“渲染没有返回任何内容” - 如何调试
- javascript - 为每个项目添加类
- go - 如何处理“服务器推送”http连接的关闭事件
- mysql - 使用 MySQL Workbench 添加外键时出现 MySQL 错误 1064
- json - 在 Sequelize 结果中包含资源链接
- javascript - 如何使用 Django 中用户过滤的数据库中的数据生成气泡图(Chart.js)?
- java - java.lang.VerifyError:无法从具有 Firebase 管理员的最终类继承
- python-3.x - 在 matplotlib 3-D 图上设置刻度
- javascript - 如何使用 jQuery 通过键删除 JSON 中的 JSON?