Куда поместить ForeignKey в django?

Один из вопросов, который пришел мне в голову, заключается в том, что в отношениях "многие-к-одному" в Django, где должен быть расположен внешний ключ? Я имею в виду, он должен быть во многих или в первой части?

Например, у нас есть два класса, post и comment: в этом случае, где должен находиться ForeignKey в классе comment или post?

модель поста :

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)

модель комментария :

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

Теперь вот поле комментария, где должен быть определен внешний ключ?

Иностранный ключ должен использоваться на стороне "Многие" в отношениях Многие-к-одному.

В вашем вопросе у вас есть модели Post и Comment. Поскольку каждый пост может иметь множество комментариев, вы должны поместить внешний ключ в модель Comment.

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
Вернуться на верх