Django 中将foreignkey 放在哪里?

Rez*_*eri 2 python database django django-models

我想到的问题之一是,在 中的多对一关系中Django, 应该foreign key位于哪里?我的意思是,它应该在很多部分还是在第一部分?

例如,我们有两个类,postand comment:在这种情况下, 应该ForeignKey位于commentorpost类中的什么位置?

post model

class post(models.model):
    created_at = models.DateTimeField(auto_now_add=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    category = models.ManyToManyField("PostCategory", blank=True)
    caption = models.CharField(max_length=2000)
Run Code Online (Sandbox Code Playgroud)

comment model

class Comment(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, 
          verbose_name=_('user'), on_delete=models.CASCADE)
    text = models.TextField()
    
Run Code Online (Sandbox Code Playgroud)

现在这里是应该定义的comment字段?foreign key

Ert*_*Ert 5

外键必须用在多对一关系的“多”端。

在你的问题中,你有PostComment模型。由于每个帖子可以有很多评论,因此您应该在模型中添加一个外键Comment

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)