Django 如何删除或忽略serializer.py中的serializer.data对象?

Django 如何删除或忽略serializer.py中的serializer.data对象?,django,serialization,django-rest-framework,Django,Serialization,Django Rest Framework,我需要删除serializer中的serializer.data对象,因为我的表中有一些记录。但整个记录细节都存在于其他微服务中,一旦有人调用了我的api,我就需要调用该服务来获取数据。但是如果记录是空的,我需要忽略这个对象。我可以创建这个视图,但也可以在Serializer.py中创建。检查参考代码: class CourseSerializer(serializers.ModelSerializer): user = serializers.SerializerMethodField

我需要删除serializer中的serializer.data对象,因为我的表中有一些记录。但整个记录细节都存在于其他微服务中,一旦有人调用了我的api,我就需要调用该服务来获取数据。但是如果记录是空的,我需要忽略这个对象。我可以创建这个视图,但也可以在Serializer.py中创建。检查参考代码:

class CourseSerializer(serializers.ModelSerializer):
    user = serializers.SerializerMethodField()

    def get_user(self, obj):
        token = self.context['request'].META['HTTP_TOKEN']
        username = get_user_details_from_id(str(obj['user']), token, name=1)
        if username:
            return username
        else:
            obj = {}

    class Meta:
        model = Course
        fields = ('user', 'total_score')

我想忽略SerializerMethodfield中的记录,如果用户名为空

则可以覆盖serializer中的
.to_表示方法

class CourseSerializer(serializers.ModelSerializer):
    user = serializers.SerializerMethodField()

    def get_user(self, obj):
        token = self.context['request'].META['HTTP_TOKEN']
        username = get_user_details_from_id(str(obj['user']), token, name=1)
        if username:
            return username
        else:
            obj = {}

    class Meta:
        model = Course
        fields = ('user', 'total_score')

    def to_representation(self, instance):
        data = super(CourseSerializer, self).to_representation(instance)
        if not data.get('username'):
            data.pop('username', None)
        return data

不是字段,而是整个对象。请检查问题,我刚刚用示例数据更新了。@sakthi panneerselvam您做到了吗?如果是这样,你能告诉我怎么做吗?@Hectorviv,没有。我现在是从视野里做的。
class CourseSerializer(serializers.ModelSerializer):
    user = serializers.SerializerMethodField()

    def get_user(self, obj):
        token = self.context['request'].META['HTTP_TOKEN']
        username = get_user_details_from_id(str(obj['user']), token, name=1)
        if username:
            return username
        else:
            obj = {}

    class Meta:
        model = Course
        fields = ('user', 'total_score')

    def to_representation(self, instance):
        data = super(CourseSerializer, self).to_representation(instance)
        if not data.get('username'):
            data.pop('username', None)
        return data