Django REST 框架 - 要求 BooleanField 为真

标签 django validation django-rest-framework boolean

您好,我正在尝试使用 Django REST 框架创建一个 rest api,其中的 boolean 字段必须为真。

在我的模型中:

class MyForm(models.Model):
    ...
    agree_terms = models.BooleanField()

在我的序列化程序中我有:

class MyFormSerializer(serializers.ModelSerializer):
    class Meta:
        model = MyForm
        fields = (..., 'agree_terms')

问题是我可以 POST 到这个 api agree_terms = false 并且我试图让它成为 True

我已经尝试添加到序列化器中:

accept_terms = fields.BooleanField(required=True)

但它对我不起作用。

有没有办法让它发挥作用?

提前致谢

易泰。

最佳答案

您正在寻找的是validate()。设置 required=True 使该字段成为必填字段,这意味着无论其值如何,它都必须出现在帖子正文中。

class MyFormSerializer(serializers.ModelSerializer):
    class Meta:
        model = MyForm
        fields = (..., 'agree_terms')
    def validate_agree_terms(self, value):
        if not value:
            raise serializers.ValidationError("Validation error")
        return value

docs

关于Django REST 框架 - 要求 BooleanField 为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56073805/

相关文章:

django - 在Django REST Framework中找不到资源时如何返回404

Django REST framework : how to wrap the response with extra fields . ... 并在数据字段中提供当前响应

django 购物车初学者

android - Android Studio 中的 FirstName 字段验证

css - (X)HTML+CSS 验证警告

django - Django Rest Framework 序列化程序中的自定义错误消息

python - 在 Django 中随机排列查询集

django - 如何从 Django 提供文本文件?

django - 在没有第 3 方应用的情况下搜索 django 模型的多个字段

c# - .NET IsValidXml 扩展方法性能