Having an issue where I am trying to set the interest_category. Here is my current code.
Serializer
class ProjectsSerializer(serializers.ModelSerializer):
interest_category = serializers.StringRelatedField()
class Meta:
model = Project
read_only_fields = (
'created_by',
'created_at',
'updated_at',
),
fields = (
'project_title',
'project_description',
'interest_category',
)
Model
class Project(models.Model):
project_title = models.CharField(max_length=255)
project_description = models.TextField(max_length=1500)
interest_category = models.ForeignKey(Interests, on_delete=models.CASCADE)
created_by = models.ForeignKey(User, related_name='projects', on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now_add=True)
Views
class ProjectViewSet(viewsets.ModelViewSet):
serializer_class = ProjectsSerializer
queryset = Project.objects.order_by('-created_at')
def perform_create(self, serializer):
serializer.save(created_by=self.request.user)
Here is the data being sent
{
"project_title": "Test",
"project_description": "Test1",
"interest_category": 2
}
Here is the data being received
(35, Test, Test1, 2022-09-22 02:11:54.342202+00, 2022-09-22 02:11:54.342202+00, 1, null).
I can send the data without a null error when I am NOT using the interest_category = serializers.StringRelatedField() in the serializer.
Any ideas why the interest_category is showing null and why it is not being sent and/or received correctly when using the serializers.StringRelatedField()?
And if it is because of the StringRelatedField is there a better way to get the name while posting the ID? In frontend, I am passing the ID as a value.