gpt4 book ai didi

python - 按数据库列进行 DRF 序列化器验证

转载 作者:太空宇宙 更新时间:2023-11-03 15:38:45 25 4
gpt4 key购买 nike

我有一个像这样的自定义序列化器--

class customSerializers(serializers.Serializer):
token = serializers.CharField(max_length=12)

我有一个这样的模型

class UserToken(models.Model):
user = models.ForeignKey(User)
token = models.CharField(max_length=12)

现在我想验证我的 customSerializers token 字段。 token 值必须存在于 UserToken 模型中并且属于当前用户。

** 我不想使用模型序列化器。

最佳答案

您应该将用户传递给序列化器,然后在字段上实现验证:

class CustomSerializer(serializers.Serializer):
token = serializers.CharField(max_length=12)

def validate_token(self, value):
user_id = self.context.get('user_id')
return UserToken.objects.filter(user__id=user_id, token=value).exists()

在您看来:

serializer = CustomSerializer(... , context={'user_id': request.user.id})
if serializer.is_valid():
...

关于python - 按数据库列进行 DRF 序列化器验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42324378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com