[英]How to validate model field using validator method in Django REST?
我想在通過 API 保存對象的同時驗證電子郵件。 我正在使用模型驗證,但它在通過 API 保存邀請對象時不起作用,只有當我們通過管理面板創建對象時它才起作用。
模型.py
def validate_email(value):
if "@gmail.com" in value:
return value
else:
raise ValidationError("This field accepts mail id of google only")
class Invitation(models.Model):
email = models.EmailField(validators=[validate_email])
嘗試通過Model.clean()
對其進行驗證
請注意,當您保存模型時,驗證器不會自動運行,但如果您使用的是 ModelForm,它將在表單中包含的任何字段上運行您的驗證器。
使用序列化程序來驗證模型屬性。 https://www.django-rest-framework.org/api-guide/serializers/#validation
序列化程序.py
from rest_framework import serializers
class Invitation(serializers.Serializer):
email = models.EmailField()
def validate_email(self, value):
if "@gmail.com" in value:
return value
else:
raise ValidationError("This field accepts mail id of google only")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.