У меня возникли проблемы с регистрацией пользователя.
Я использую библиотеку Djoser от Sunscrapers.
При создании нового пользователя из Почтальона я получаю ответ "Невозможно создать учетную запись".
В моем терминале (docker) я получаю следующую информацию:
ERROR: null value in column "country_id" violates not-null constraint
DETAIL: Failing row contains (53, null, , t, jaroslawpsikuta1@gmail.com, pbkdf2_sha256$180000$p2Q8c4Du3uLF$o56YHGCS0ZutasVhevPXl8rrMG/VYL..., , null, , , , 2020-03-10 10:06:48.053201+00, null, f).
STATEMENT: INSERT INTO "accounts_user" ("last_login", "email", "is_superuser", "is_active", "password", "first_name", "last_name", "date_of_birth", "description", "address", "phone", "created_at", "country_id") VALUES (NULL, 'jaroslawpsikuta1@gmail.com', false, true, 'pbkdf2_sha256$180000$p2Q8c4Du3uLF$o56YHGCS0ZutasVhevPXl8rrMG/VYLiyzTB6LrSY4ws=', '', '', NULL, '', '', '', '2020-03-10T10:06:48.053201+00:00'::timestamptz, NULL) RETURNING "accounts_user"."id"
Кажется, что Джосер не видит мой тело запроса, и оно пытается поместить пустые или нулевые значения в базу данных. До сих пор я пробовал следующее решение: Настроить конечную точку создания пользователя djoser ... но это не сработало.
код:
serializers.py
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
class Meta:
model = User
fields = ['id', 'email', 'password', 'first_name', 'last_name', 'date_of_birth', 'description', 'address', 'phone', 'created_at', 'last_login', 'country']
def create(self, validated_data):
password = validated_data.pop('password')
user = User(**validated_data)
user.set_password(password)
user.save()
return user
views.py
class UserViewSet(ModelViewSet):
serializer_class = UserSerializer
queryset = User.objects.all()
permission_classes = []
У вас есть идеи, как решить эту проблему? Может я что то забыл? Спасибо за помощь :) С уважением,