自定义模型字段以进行序列化

时间:2015-05-26 10:58:22

标签: django-models django-rest-framework

我在django上做一个项目。我有一个模型EmployeeProfile,包括几个领域以及带有以下数据的现场教育 - (学院,年份,课程,描述)。 在模型中,我以分离字段的形式存储数据。 例如教育的样本价值 - “XYZ colllege | 1994 | Btech | blabla”

但我想将它与字典形式的其他字段序列化,即

{ education:{ year: '1994', course: ' Btech', college: ' XYZ ', description: 'blabla'}}

并且将来我也希望将它用作由';'排除的数组 但现在不一定需要。

我是django restframework的新手......

1 个答案:

答案 0 :(得分:0)

首先,您可以使用拆分来拆分教育字段值。 然后你可以相应地序列化它。

class CustomModel:
    def __init__(self, year,course,college,description):
        self.year = year
        self.course = course
        self.description = description
        self.college = college

class CustomSerializer(NonNullSerializer):

    year = serializers.IntegerField()
    course = serializers.CharField()
    description = serializers.CharField()
    college = serializers.CharField()

在view.py中添加此内容

    education_value = ...
    year,course,college,description = education_value.split('|')
    education_obj = CustomModel(year=year,course=course,college=college,description=description)
    serialized_data = CustomSerializer(education_obj)
    return serialized_data.data

希望这有帮助