I want to keep a simple model with the Django REST Framework. The only requirement is that UserVote.created_by set automatically in the perform_create() method. This eliminates this exception:
{ "created_by": [ "This field is required." ] }
I assume this is due to the unique_interface.
models.py:
class UserVote(models.Model): created_by = models.ForeignKey(User, related_name='uservotes') rating = models.ForeignKey(Rating) class Meta: unique_together = ('created_by', 'rating')
serializers.py
class UserVoteSerializer(serializers.ModelSerializer): id = serializers.IntegerField(read_only=True) created_by = UserSerializer(read_only=True) class Meta: model = UserVote fields = ('id', 'rating', 'created_by')
views.py
class UserVoteViewSet(viewsets.ModelViewSet): queryset = UserVote.objects.all() serializer_class = UserVoteSerializer permission_classes = (IsCreatedByOrReadOnly, ) def perform_create(self, serializer): serializer.save(created_by=self.request.user)
How can I save my model in DRF without giving the created_by user and instead set this field automatically in the code?
Thanks in advance!
source share