Save data otomatis untuk onetoonefield

saya sebelumnya menyimpan data User ke database, setelah menyimpan data maka saya mau menyimpan data user detail nya, namun saya tidak bisa menyimpan data user id di user detail, user id yang ada di model user detail adalah OneToOneField dari model User

saya menemukan error seperti ini :

ValueError at /register
Cannot assign "24": "UserDetail.user_id" must be a "User" instance.

ini coding registernya :

class Register(APIView):

    parser_classes = (MultiPartParser,)
    def post(self, request, format=None):

            user = User()
            user.first_name = request.POST.get('first_name')
            user.last_name = request.POST.get('last_name')
            user.username = request.POST.get('username')
            user.email = request.POST.get('email')
            user.password = request.POST.get('password')
            user.is_superuser = True
            user.is_staff = True
            user.is_active = True

            serializer = UserSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()

            ud = UserDetail()

            users = User.objects.last().id
            ud.user_id = users
            ud.business_type = BusinessType.objects.get(id=request.POST.get('business_type'))
            ud.business_name = request.POST.get('business_name')
            ud.business_category = BusinessCategory.objects.get(id=request.POST.get('business_category'))
            ud.mobile_number = request.POST.get('mobile_number')
            ud.email_address = request.POST.get('email_address')
            ud.document = request.FILES['document']

            serializers = UserDetailSerializer(data=request.data)
            if serializers.is_valid():
                serializers.save()
                return Response({
                    'rc': '00',
                    'rm': 'Success'
                })

mohon bantuannya, saya baru menggunakan python dan django

avatar frikadacintia
@frikadacintia

1 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban