我有一个模型任务,我想创建另一个模型 Sequence ,它将保存有序的任务序列,例如sequence1 - > Task1,Task3,Task 7; sequence2 - > Task1,Task2,Task4,Task7等。
序列可以有多个任务,任务可以有多个序列。
如何创建这样的模型以确保它保持有序序列?
答案 0 :(得分:0)
创建具有M2M字段关系的模型。然后,您可以创建一个序列化程序。在序列化程序中,您可以选择从M2M字段格式化数据:
即 StringRelatedField
class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.StringRelatedField(many=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
这样做:
{
'album_name': 'Things We Lost In The Fire',
'artist': 'Low',
'tracks': [
'1: Sunflower',
'2: Whitetail',
'3: Dinosaur Act',
...
]
}
或 PrimartKeyRelatedField
class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
执行此操作:
{
'album_name': 'Undun',
'artist': 'The Roots',
'tracks': [
89,
90,
91,
...
]
}
还有更多选择。更多read the Docs DRF。
PD:默认情况下,M2M字段中的数据按照对象的创建方式排序