小编And*_*rew的帖子

Django Rest框架嵌套序列化器创建方法

我创建了一个嵌套序列化器,当我尝试在其中发布数据时,它会继续显示外键值不能为空或需要字典。我已经经历了各种类似的问题并尝试了答案,但它对我不起作用。这是模型

##CLasses
class Classes(models.Model):
    class_name = models.CharField(max_length=255)
    class_code = models.CharField(max_length=255)
    created_date = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.class_name
    class Meta:
        ordering = ['class_code']
##Streams
class Stream(models.Model):
    stream_name = models.CharField(max_length=255)
    classes = models.ForeignKey(Classes,related_name="classes",on_delete=models.CASCADE)
    created_date = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return self.stream_name
    class Meta:
        ordering = ['stream_name']
Run Code Online (Sandbox Code Playgroud)

这是视图

class StreamViewset(viewsets.ModelViewSet):
    queryset = Stream.objects.all()
    serializer_class = StreamSerializer
Run Code Online (Sandbox Code Playgroud)

这是序列化器类

class StreamSerializer(serializers.ModelSerializer):
    # classesDetails = serializers.SerializerMethodField()
    classes = ClassSerializer()
    class Meta:
        model = Stream
        fields = '__all__'
    def create(self,validated_data):
        classes = Classes.objects.get(id=validated_data["classes"])
        return Stream.objects.create(**validated_data, classes=classes)
    # def …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

4
推荐指数
1
解决办法
3803
查看次数

标签 统计

django ×1

django-rest-framework ×1

python ×1