Ben kullanıcı kayıt https://stackoverflow.com/a/19337404/4507367 cevapVarsayılan REST Kullanıcı modelinde bir alanın benzersizliği nasıl zorlanır?
@api_view(['POST'])
def register(request):
VALID_USER_FIELDS = [f.name for f in get_user_model()._meta.fields]
serialized = UserSerializer(data=request.data)
if serialized.is_valid():
user_data = {field: data for (field, data) in request.data.items() if field in VALID_USER_FIELDS}
user = get_user_model().objects.create_user(
**user_data
)
return Response(UserSerializer(instance=user).data, status=status.HTTP_201_CREATED)
else:
return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
kodunu kullanıyorum ama kayıt isteği zaten kullanılan e-posta varsa kayıt başarısız olmasını istiyorum. Bu muhtemelen user_data['email']
tarafından tüm kullanıcıları filtrelemek ve e-posta zaten varsa, ancak kötü bir uygulama gibi görünüyor istek reddederek yapılabilir. Daha iyi bir yolu olmalı!
Zaten şuna baktım, ama böyle bir doğrulayıcıyı nasıl kullanacağımı bilmiyorum (modelde mi? Veya seri hale getirici?) – Zygro
Diziselleştirici içinde (model benzersiz bir kısıtlama varsa ücretsiz gelir). – Linovia