“设计”;“视频”;及;视频列表“;使用Django的表格,如Youtube表格

“设计”;“视频”;及;视频列表“;使用Django的表格,如Youtube表格,django,database-design,youtube,many-to-many,relational-database,Django,Database Design,Youtube,Many To Many,Relational Database,我正在用Django制作一个带有“视频”和“视频列表”表格的应用程序,比如YouTube表格 现在,我正在制作一个“视频”和“课程(这是视频列表)”表。 我想将一个视频添加到一些不同的列表中,并通过列表和视频进行搜索, 所以,让课程表有许多字段链接到视频表 但这样一来,我就很难在列表中排列视频。 要按照我注册的顺序显示视频并在注册后随时修复它们,很多字段在注册时必须有类似“id”的内容,对吗 我是Python和Django的初学者,所以可能有一些典型的方法。。。 有什么好方法可以解决这个问题吗?

我正在用Django制作一个带有“视频”和“视频列表”表格的应用程序,比如YouTube表格

现在,我正在制作一个“视频”和“课程(这是视频列表)”表。 我想将一个视频添加到一些不同的列表中,并通过列表和视频进行搜索, 所以,让课程表有许多字段链接到视频表

但这样一来,我就很难在列表中排列视频。 要按照我注册的顺序显示视频并在注册后随时修复它们,很多字段在注册时必须有类似“id”的内容,对吗

我是Python和Django的初学者,所以可能有一些典型的方法。。。
有什么好方法可以解决这个问题吗?

您可以通过创建自己的中介模型(而不是使用Django创建的隐式模型)来实现这一点:

上面的重要部分是
ManyToManyField
上的
属性。这告诉Django使用您定义的
CourseVideo
模型,而不是它自己的隐式版本

但是,执行此操作时会遇到一些问题。您不能再使用诸如
某些课程.videos.add(video)
,因为现在需要其他信息来创建该关系。相反,您需要显式创建该关系:

CourseVideo.objects.create(course=some_course, video=some_video, order=1)

有关更多详细信息,请参阅文档:

我想我应该使用另一个使用through属性的表。您的代码对我帮助很大。非常感谢!
CourseVideo.objects.create(course=some_course, video=some_video, order=1)