Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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:存储多个&;动态有序模型序列_Python_Django_Django Models - Fatal编程技术网

Python Django:存储多个&;动态有序模型序列

Python Django:存储多个&;动态有序模型序列,python,django,django-models,Python,Django,Django Models,比方说,用户有视频剪辑和图像,它们都有相应的模型,VideoClipModel和ImageModel 现在我添加了一个新功能,用户可以将剪辑和图像结合起来创建“最终”视频。现在我需要的是创建一个模型,在这里我可以存储视频剪辑和图像的序列。有人知道怎么做吗 例如:用户希望创建具有以下项目序列的最终视频: Image1 -> VideoClip1 -> Image2 -> VideoClip2 -> VideoClip3 -> Image3 -> Image1

比方说,用户有视频剪辑和图像,它们都有相应的模型,
VideoClipModel
ImageModel

现在我添加了一个新功能,用户可以将剪辑和图像结合起来创建“最终”视频。现在我需要的是创建一个模型,在这里我可以存储视频剪辑和图像的序列。有人知道怎么做吗

例如:用户希望创建具有以下项目序列的最终视频:

Image1 -> VideoClip1 -> Image2 -> VideoClip2 -> VideoClip3 -> Image3 -> Image1
我想做的是创建一个模型,在这里我可以存储所选的序列

我想创建一个VideoFinalModel,其中有两个m2m字段,分别是ImageModel和VideoClipModel,还有一个charfield,用于以类似以下方式存储订单:

image_1, video_1, image_2, video_2, video_3, image_3, image_1
所以这些模型看起来像:

def VideoFinal(...):
    videos = models.ManyToManyFIeld("VideoClips")
    images = models.ManyToManyFIeld("Images")
    order = models.CharField()

def Images(...):
    """ A bunch of fields here """

def VideoClips(...):
    """ A bunch of different fields here """
现在,这会满足我的要求。。。然而,我不相信这是应该做的

我怎样才能用蟒蛇的方式来做呢


谢谢

您可以拥有一个带有位置字段的模型
VideoComponent
,以及
VideoClipModel
ImageModel
外键。然后,
Video
模型将有一个多对多字段来
VideoComponent

class Video(models.Model):
    components = models.ManyToManyField('VideoComponent')

class VideoComponent(models.Model):
    image = models.ForeignKey('ImageModel')
    video_clip = models.ForeignKey('VideoClipModel ')
    position = models.IntegerField()

    class Meta:
        ordering = ['position']
获取订购的组件:

 video.components.all()
还可以查看django mptt以存储分层数据:


似乎就是我要找的!