Django create user Прямое назначение на прямую сторону множества "многие-ко-многим" запрещено. Вместо этого используйте groups.set()
Я использую стандартную модель Django User для регистрации пользователей. Когда я пытался создать пользователя, я получил следующее сообщение об ошибке. Прямое назначение на прямую сторону множества "многие ко многим" запрещено. Вместо этого используйте groups.set().
# views.py
from django.contrib.auth.models import User
from rest_framework import viewsets
from app.serializers import UserSerializer
# Create your views here.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
# serializers.py
from django.contrib.auth.models import User
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
extra_kwargs = {'password': {'write_only': True, 'required': False}}
def create(self, validated_data):
print(validated_data)
user = User.objects.create_user(**validated_data)
return user
# urls.py
from django.urls import path, include
from rest_framework import routers
from app import views
from rest_framework.authtoken.views import obtain_auth_token
router = routers.SimpleRouter()
router.register(r'users', views.UserViewSet)
urlpatterns = [
path('auth/', obtain_auth_token),
]
urlpatterns += router.urls
Я вставляю только запись пользователя, нет никакой внешней таблицы или отношения "многие-ко-многим". Не уверен, почему система выбрасывает эту ошибку.
Прилагается скриншот почтальона.