Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django rest框架中包含来自基本序列化程序的字段?_Python_Django_Django Rest Framework - Fatal编程技术网

Python 如何在django rest框架中包含来自基本序列化程序的字段?

Python 如何在django rest框架中包含来自基本序列化程序的字段?,python,django,django-rest-framework,Python,Django,Django Rest Framework,我有这个密码 class BaseSerializer(serializers.ModelSerializer): unicode = serializers.SerializerMethodField('get_unicode') class Meta: fields=('unicode',) def get_unicode(self): return 'test' 我希望基本序列化程序中的所有字段都包含在它的所有子类中 class

我有这个密码

class BaseSerializer(serializers.ModelSerializer):
    unicode = serializers.SerializerMethodField('get_unicode')
    class Meta:
        fields=('unicode',)

    def get_unicode(self):
        return 'test'
我希望基本序列化程序中的所有字段都包含在它的所有子类中

class EntrySerializer(BaseSerializer):
    class Meta:
        model = models.Entry
        fields = ('id', 'start_time', 'end_time')
但输出中不包含unicode

是否有任何方法可以使添加到基本序列化程序中的所有字段 自动附加到子类,而无需手动添加名称。
我只想将所有类中的公共字段保留在Base中,您可以这样做。它将包括基本序列化程序的所有字段

class EntrySerializer(serializers.Modelserializer):
    base= BaseSerializer()
    class Meta:
        model = models.Entry
        fields = ('base','id', 'start_time', 'end_time')

您可以将BaseSerializer的Meta.fields添加到EntrySerializer的Meta.fields:

class EntrySerializer(BaseSerializer):
类元:
model=models.Entry
字段=('id','start\u time','end\u time')+\
BaseSerializer.Meta.fields

注意:BaseSerializer必须是序列化程序的子类(或具有属性
\u声明的\u字段
)。否则,字段
unicode
将(配置不正确的异常)。

对于我来说,我将“unicode”字段附加到EntrySerializer字段。由于子类字段将覆盖基类字段,因此unicode字段将消失。在EntrySerializer中覆盖的字段,请在的字段中添加unicodeEntrySerializer@GeoJacob,是否有任何方法可以使在基本序列化程序中添加的所有字段自动附加到子类,而无需手动添加名称。我只想把所有计算器中的公共字段都保留在底部