在用戶註冊期間,我希望同時在一個API調用中創建User對象和EmailContact對象。這兩個對象不應該鏈接。 我有以下串行:在Django rest框架的一個序列化程序中創建兩個模型
class RegistrationSerializer(serializers.Serializer):
userserializer=UserAccountSerializer() #reuse existing modelserializer
emailcontactserializer=EmailContactSerializer() #reuse existing modelserializer
def create(self, validated_data):
emailcontact_data = validated_data.pop('emailcontactserializer')
user_data = validated_data.pop('userserializer')
emailcontact= EmailContact.objects.create(**emailcontact_data)
user= User.objects.create(**user_data)
return user
及以下Apiview:
class RegistrationAPIView(APIView):
permission_classes = (AllowAny,)
serializer_class = RegistrationSerializer
def post(self, request):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我得到的錯誤是以下(在serializer.save後發生()):
AttributeError的at/api/register 嘗試獲取串行器RegistrationSerializer
上的字段userserializer
的值時出現AttributeError錯誤。 串行器字段可能命名錯誤,並且不匹配User
實例上的任何屬性或密鑰。 原始異常文本爲:'用戶'對象沒有屬性'userserializer'。