有人可以解释一下为什么我需要在Django中引用两个模型吗?

时间:2018-10-31 08:41:19

标签: django django-models

有人可以解释我将如何在Django中引用另一个模型,以及为什么我需要这样做吗?

class Post(models.Model):

    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    image = models.ImageField(upload_to='images')
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

这是我的第一堂课,我需要在下面的BannerPost类中引用它。

class BannerPost(models.Model):

    image = models.ImageField(upload_to='images')
    created_date = models.DateTimeField(default=timezone.now)
    published_date = models.DateTimeField(blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

1 个答案:

答案 0 :(得分:2)

我认为您在这里谈论的是Foreign_keys,因此您需要在BannerPost模型中添加一个外键字段:

post = models.ForeignKey(post)

“这被称为数据库表中的关系。如果您使用的是Google,那么您会找到比我们在此处的答案中能更好地解释它的教程。”您也可以查看此“ docs.djangoproject.com/en/2.1/topics/db/models/#relationships”进一步了解Django的实现。