2 回答

TA貢獻1804條經驗 獲得超8個贊
您可以使用以下模型作為基礎。通常,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)

TA貢獻1796條經驗 獲得超7個贊
以下是關于您可以執行的操作的草稿:
請注意,類名稱采用 CamelCase**
class Course(models.Model):
title = models.CharField(max_length=100)
class Chapter(models.Model):
course = models.ForeignKey(Course, on_delete=models.CASCADE)
class Video(models.Model):
title = models.CharField(max_length=100)
video = models.FileField(upload_to=user_directory_path)
chapter = models.ForeignKey('Chapter', on_delete=models.CASCADE)
添加回答
舉報