第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Django 中連接多個模型

如何在 Django 中連接多個模型

海綿寶寶撒 2023-07-11 15:27:08
我是 Django 的初學(xué)者,想要在 Django 模型中創(chuàng)建一個系統(tǒng),用戶可以上傳帶有標(biāo)題和不同章節(jié)的課程,其中都可以包含多個視頻。我考慮過創(chuàng)建三個模型1. 課程與課程標(biāo)題2. 章節(jié)其中有不同的視頻3. 視頻這是帶有視頻標(biāo)題的視頻但我不知道如何在這三個模型之間創(chuàng)建連接,以便一門課程可以有多個章節(jié),一章可以有多個視頻。這些是我的第一個模型(我剛剛快速創(chuàng)建了它們):def user_directory_path(instance, filename):? ? # file will be uploaded to MEDIA_ROOT/user_<id>/<filename>? ? return 'user_{0}/{1}'.format(instance.user.id, filename)class video(models.Model):? ? title = models.CharField(max_length=100)? ? video = models.FileField(upload_to=user_directory_path)class course(models.Model):? ? title = models.CharField(max_length=100)class chapter(models.Model):? ? pass我應(yīng)該如何調(diào)整模型并創(chuàng)建連接來完成我想要的系統(tǒng)?
查看完整描述

2 回答

?
胡說叔叔

TA貢獻1804條經(jīng)驗 獲得超8個贊

您可以使用以下模型作為基礎(chǔ)。通常,ForeignKey創(chuàng)建多對一關(guān)系(一個用戶可以擁有多個課程,但一門課程不能由多個用戶擁有)。并ManyToManyField創(chuàng)建多對多的關(guān)系(一個學(xué)生可以注冊多門課程,一門課程可以有多個學(xué)生注冊)。請注意, related_name 屬性是您從類指向的相關(guān)對象訪問實例(包含關(guān)系字段的類的實例)時引用它們的方式。


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)


查看完整回答
反對 回復(fù) 2023-07-11
?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

以下是關(guān)于您可以執(zhí)行的操作的草稿:

請注意,類名稱采用 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)


查看完整回答
反對 回復(fù) 2023-07-11
  • 2 回答
  • 0 關(guān)注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號