Search code examples
django-rest-frameworkdjango-serializer

DRF : CreateAPIView - UNIQUE constraint failed


I am using Django Rest Framework with React for the front. I want to post Note linked to a ForeignKey User.

models.Note

class Note(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    content = models.TextField(blank=True, default='')

serializers.NoteSerializer

class NoteSerializer(serializers.ModelSerializer):
    user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())

    class Meta:
        model = Note
        fields = ('user', 'content')

When I post {user: 1, content: "test"}, I get the following error message:

UNIQUE constraint failed: app_note.user_id

How can I link the new Note to an existing user, posting the user.id?

I think my current code is trying to create a new User Instance...


Solution

  • You are using OneToOneField in Note model. That means a user can have only one note. use ForeignKey instead to have many notes for single user.