【发布时间】:2021-11-12 11:11:59
【问题描述】:
我正在尝试创建 Views.py 方法,用于检查电子邮件是否已存在于数据库中。它适用于用户名,但不适用于电子邮件或令牌。使这成为可能的方法是什么?谢谢!
@api_view(['POST'])
def send_user_details(request):
if request.method == "POST":
serializer = SignUpDetailsForm(data=request.data)
if serializer.is_valid():
email = serializer.validated_data['email']
username = serializer.validated_data['username']
password = serializer.validated_data['password']
if User.objects.filter(email=email).exists():
raise email.ValidationError("Este Email ya está en uso")
if User.objects.filter(username=username).exists():
raise username.ValidationError("Este Usuario ya está en uso")
这是序列化程序:
class SignUpDetailsForm(serializers.ModelSerializer):
class Meta:
model = SignUpDetails
fields = (
'first_name',
'last_name',
'email',
'username',
'password',
)
它生成 AttributeError: 'str' object has no attribute 'ValidationError'
【问题讨论】:
-
Python 明确表示
email对象是 'str' 对象没有属性 'ValidationError' 。 -
@madzohan 好的,用户名也是一个字符串,虽然它没有得到这个错误。
-
不可能是真的 :) 使用 a= 'ololo' 运行 python; a.ValidationError
标签: javascript python django django-rest-framework