Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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/20.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/3/templates/2.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_Django Rest Framework - Fatal编程技术网

Python 如何在Django中连接多个模型

Python 如何在Django中连接多个模型,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,我是Django的初学者,我想在Django模型中创建一个系统,用户可以上传一个课程的标题和不同的章节,所有这些都可以有多个视频。 如图所示 我考虑创建三个模型 1。课程 课程名称 2。第章 里面有不同的视频 3。视频 这里有一段视频,视频的标题 但我不知道如何在这三个模型之间建立联系,以便在一门课程中有多个章节,在一个章节中有多个视频 这些是我的第一个模型(我只是快速创建): def用户目录路径(实例,文件名): #文件将上载到媒体\u ROOT/用户_/ 返回'user{0}/{1}'。格

我是Django的初学者,我想在Django模型中创建一个系统,用户可以上传一个课程的标题和不同的章节,所有这些都可以有多个视频。 如图所示

我考虑创建三个模型

1。课程

课程名称

2。第章

里面有不同的视频

3。视频

这里有一段视频,视频的标题

但我不知道如何在这三个模型之间建立联系,以便在一门课程中有多个章节,在一个章节中有多个视频

这些是我的第一个模型(我只是快速创建):

def用户目录路径(实例,文件名):
#文件将上载到媒体\u ROOT/用户_/
返回'user{0}/{1}'。格式(instance.user.id,文件名)
课堂视频(models.Model):
title=models.CharField(最大长度=100)
video=models.FileField(上传到=user\u目录\u路径)
课堂课程(models.Model):
title=models.CharField(最大长度=100)
课程章节(models.Model):

pass
以下是关于您可以做什么的草稿:
请注意,类名是大写的**

课堂课程(models.Model):
title=models.CharField(最大长度=100)
课程章节(models.Model):
课程=models.ForeignKey(课程,on_delete=models.CASCADE)
课堂视频(models.Model):
title=models.CharField(最大长度=100)
video=models.FileField(上传到=user\u目录\u路径)

章=模型。ForeignKey(“章节”,OnOnDele=模型,级联)< /代码> 您可以使用下面的模型作为基础。通常,
ForeignKey
创建多对一关系(一个用户可以拥有多个课程,但一个课程不能由多个用户拥有)。而
ManyToManyField
创建了多对多关系(一个学生可以注册多个课程,一个课程也可以注册多个学生)。请注意,related_name属性是在从类指向的相关对象(示例:)访问实例(包含关系字段的类)时如何引用实例的

from django.contrib.auth.models import User
from django.db import models

    
class Subject(models.Model):
    title = models.CharField(max_length=200)
    
class Course(models.Model):
    owner = models.ForeignKey(User, related_name='courses_created', on_delete=models.CASCADE)
    subject = models.ForeignKey(Subject, related_name='courses', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True)
    students = models.ManyToManyField(User, related_name='courses_joined', blank=True)

class Chapter(models.Model):
    course = models.ForeignKey(Course, related_name='chapters', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    description = models.TextField(blank=True)
    
class VideoItem(models.Model):
    title = models.CharField(max_length=250)
    video = models.FileField(upload_to=user_directory_path)
    chapter = models.ForeignKey(Chapter, related_name='videos', on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)