gpt4 book ai didi

django - 我们如何为一本杂志添加 3 个以上的作者字段?在 Django 模型中

转载 作者:行者123 更新时间:2023-12-04 08:43:44 26 4
gpt4 key购买 nike

我在 Django 中创建了一个杂志模型。但他们是一本杂志的三位以上作者。我为三位作者编写了以下代码。如果我为一个杂志写两个或三个作者的代码,那么它看起来还不错。但如果我为三位以上的作者创作,那么它看起来会很糟糕。现在我很困惑,我创建的方法是错误的吗?如果写错了应该怎么写?

    author_name1 = models.CharField(max_length=300, blank=True)
designation1 = models.CharField(max_length=100, blank=True)
author_pic1 = models.ImageField(upload_to="authorpic", blank=True)
author_detail1 = models.TextField(max_length=1000, blank=true)
author_name2 = models.CharField(max_length=300, blank=True)
designation2 = models.CharField(max_length=100, blank=True)
author_pic2 = models.ImageField(upload_to="authorpic", blank=True)
author_detail2 = models.TextField(max_length=1000, blank=true)
author_name3 = models.CharField(max_length=300, blank=True)
designation3 = models.CharField(max_length=100, blank=True)
author_pic3 = models.ImageField(upload_to="authorpic", blank=True)
author_detail3 = models.TextField(max_length=1000, blank=true)

最佳答案

您可以使用 ForeignKey [Django-doc] 创建一个额外的模型 Author杂志。如果同一个 Author 可以写多个 Magazine,您可能需要使用 ManyToManyField [Django-doc]相反:

class <b>Author</b>(models.Model):
name = models.CharField(max_length=300, unique=True)
designation = models.CharField(max_length=300, blank=True)
picture = models.ImageField(upload_to_authorpic, blank=True)
detail = model.TextField(max_length=1000, blank=True)

class Magazine(models.Model):
# …
authors = models.<b>ManyToManyField</b>(
<b>Author</b>,
related_name='magazines',
on_delete=models.CASCADE
)

您可能希望将 name 设为 unique=True [Django-doc]字段以避免创建两个具有相同名称的 Author 对象。

关于django - 我们如何为一本杂志添加 3 个以上的作者字段?在 Django 模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64435592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com