kullanma django-dinlenme-çerçeve 3 ile kullanıcı oluşturmak ve Django-dinlenme-çerçeve ModelViewSerializer kullanarak bir kullanıcı oluşturmaya çalışıyorum 1.8Django kalan çerçeve parolası
django. Sorun, DRF tarafından kullanılan varsayılan objects.create yönteminin parolayı düz metin olarak bırakmasıdır.
Sorun, DRF dizileyici oluşturma yönteminin objects.create_user
yöntemini kullanmak yerine objects.create
querysets/#create yöntemini kullanmasıdır.
kod satırı serializers.py den 775
instance = ModelClass.objects.create(**validated_data)
bunun için en iyi çözüm nedir? objects.create yerine objects.user_create kullanmak için serializer.create yöntemini geçersiz kılabilirim ancak doğru çözüm gibi hissetmiyorum. kod
dinlenme:
class UserSerializer(serializers.ModelSerializer):
# ....
def create(self, validated_data):
user = User.objects.create_user(**validated_data)
return user
diğer çözümler ViewSet sınıfında perform_create
geçersiz kılma olabilir ya da viewset sınıfında kendi create
yöntemi yazabilirsiniz:
from django.contrib.auth.models import User
from rest_framework import viewsets
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'email','password')
write_only_fields = ('password',)
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer = UserSerializer()
Neden sana doğru görünmüyor
? Bence böyle giderim. Biraz arandı ve en azından bu SO postunu (farklı soru) buldu, ancak 'create()' yi geçersiz kılmak, kabul edilen cevapta bu amaçla kullanılır. http: // stackoverflow.com/a/27763502/870769 – sthzg