Куда поместить 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)