首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django rest模型m2m顺序存储

Django rest模型m2m顺序存储
EN

Stack Overflow用户
提问于 2018-04-24 13:45:46
回答 1查看 26关注 0票数 1

我有一个模型任务,我想创建另一个模型序列,它将包含有序的任务序列,例如sequence1 -> Task1、Task3、Task 7;sequence2 -> Task1、Task2、Task4、Task7等。

一个序列可以有多个任务,一个任务可以是多个序列。

如何创建这样一个模型以确保其保持有序序列?

EN

回答 1

Stack Overflow用户

发布于 2018-04-24 15:22:24

使用M2M字段关系创建模型。然后,您可以创建一个序列化程序。在序列化程序中,您有一些选项可以格式化来自M2M字段的数据:

StringRelatedField

代码语言:javascript
运行
复制
class AlbumSerializer(serializers.ModelSerializer):
    tracks = serializers.StringRelatedField(many=True)

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')

这样做:

代码语言:javascript
运行
复制
{
    'album_name': 'Things We Lost In The Fire',
    'artist': 'Low',
    'tracks': [
        '1: Sunflower',
        '2: Whitetail',
        '3: Dinosaur Act',
        ...
    ]
}

PrimartKeyRelatedField

代码语言:javascript
运行
复制
class AlbumSerializer(serializers.ModelSerializer):
    tracks = serializers.PrimaryKeyRelatedField(many=True, read_only=True)

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')

这样做:

代码语言:javascript
运行
复制
{
    'album_name': 'Undun',
    'artist': 'The Roots',
    'tracks': [
        89,
        90,
        91,
        ...
    ]
}

还有更多的选择。关于更多的阅读文档DRF

PD:默认情况下,M2M字段中的数据是根据创建对象的方式排序的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50003305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档