您好,我正在尝试使用 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
关于Django REST 框架 - 要求 BooleanField 为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56073805/