【问题标题】:How to add many filed in Django如何在 Django 中添加多个文件
【发布时间】:2021-09-17 20:16:06
【问题描述】:

我决定用 Django 创建电影网站,我想添加,例如

season 1 - series 1 , 
season 1 - series 2,
season 2 - series 1
season 2 - series 1

什么是最好的方法?我的意思是当我添加一次电视节目时以及如何添加系列和季节?

这是我的model.py

class Movie(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)
    image = 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=10)
    view_count = models.IntegerField(default=0)
    link = models.TextField(max_length=70)

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

    def __str__(self):
        return "{} -------------- {}".format(self.title,self.status)

【问题讨论】:

  • 对于电视节目,您可以制作两个不同的表格,TVShow 模型可以像电影一样拥有有关该节目的详细信息,而一个带有季节编号,剧集编号的季节模型。和电视节目的外键。

标签: python python-3.x django django-models django-views


【解决方案1】:

我会创建两个单独的模型:

class TvShow(Model):
    """ Information about the TV Show as a whole """
    title = models.CharField(max_length=100)
    ... # Just like Movie


class Episode(Model):
    """ Information about specific TV Show episodes """
    tv_show: models.ForeignKey(TvShow)
    season: models.IntegerField()
    series: models.IntegerField()
    title: models.CharField()  # Title of the episode

    class Meta:
        unique_together = ('tv_show', 'season', 'series')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多