在尝试设置interest_category
时出现问题。这是我当前的代码。
序列化程序
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',
)
型号
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)
视图
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)
这是正在发送的数据
{
"project_title": "Test",
"project_description": "Test1",
"interest_category": 2
}
这是正在接收的数据
(35, Test, Test1, 2022-09-22 02:11:54.342202+00, 2022-09-22 02:11:54.342202+00, 1, null).
当我没有在序列化程序中使用interest_category = serializers.StringRelatedField()
时,我可以发送数据而不会出现null错误
知道为什么interest_category
显示null
,以及为什么在使用serializers.StringRelatedField()
时没有正确发送和/或接收CCD_4吗
如果是因为StringRelatedField
,在发布ID时有更好的方法来获取名称吗?在前端,我将ID作为一个值进行传递
不使用interest_category = serializers.StringRelatedField()
put因为CCD_ 9可以用于使用其CCD_。其中IntegerField
表示一个整数。
因为您在数据中发送整数值:
{
"project_title": "Test",
"project_description": "Test1",
"interest_category": 2
}