首页 > 解决方案 > 如何在 Django Movies 网站中添加系列和剧集?

问题描述

我创建了电影网站,现在我想创建models可以选择连续剧然后添加连续剧和剧集的地方。例如,添加 Serial Vikings,然后我想添加第 1 季和第 1 集。最好的主意是什么?这是我的模特

class Serial(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=255, unique=True, db_index=True, verbose_name="URL")
    title_english = models.CharField(max_length=100)
    descritpion = models.TextField(max_length=1000)
    images = models.ImageField(upload_to="movies")
    category = models.CharField(choices=CATEGORY_CHOICES, max_length=10)
    language = models.CharField(choices=LANGUAGE_CHOICES, max_length=30)
    status = models.CharField(choices=STATUS_CHOICES, max_length=100)
    year_of_production = models.TextField(max_length=1000)
    view_count = models.IntegerField(default=0)
    


    def get_absolute_url(self):
        return reverse('post', kwargs={"post_slug_serial": self.slug})

    def __str__(self):
        return self.title

我想我需要Django Many to many relationship,但如何?谁能帮我 ?创建此任务的最佳方法是什么?

标签: pythonpython-3.xdjangodjango-modelsdjango-rest-framework

解决方案


您将需要一个ForeignKey关系,因为连续剧会有许多季节,但相同的季节不会用于许多不同的连续剧。

例如: 除了《权力的游戏》之外,您不需要《权力的游戏》第一季来观看其他系列

你的模型看起来像:

class Serial(models.Model):
    [..fields..]

class Season(models.Model):
    serial = models.ForeignKey(Serial, on_delete=models.CASCADE)

class Episode(models.Model):
    season = models.ForeignKey(Season, on_delete=models.CASCADE)

推荐阅读