我有一个问题,我无法决定如何设计以下方案的模型
在这里评论表
class Comments(model.Models):
date = models.DateField(auto_now_add=True)
comment_text = models.TextField(required=True)
如果我这样创建Companies表;
class Companies(models.Model):
name = models.CharField(max_length=30)
country = models.CharField(max_length=30)
comment = models.ForeignKey(Comments, on_delete=models.SET_NULL, null=True)
然后我只能在“公司”表的特定行上附加一条评论
如果我这样创建Companies表;
class Companies(models.Model):
name = models.CharField(max_length=30)
country = models.CharField(max_length=30)
comment = models.ManyToManyField(Comments)
然后,评论可以属于我不想要的多家公司。
在Django文档https://docs.djangoproject.com/en/2.0/topics/db/examples/中,只剩下一个选项,即一对一映射,这显然不是我想要的。
如何实现我想要的?
答案 0 :(得分:0)
只需将ForeignKey放在Comment上,指向Company。这正是您想要的。
答案 1 :(得分:0)
您应该这样做。
class Company(models.Model):
name = models.CharField(max_length=30)
country = models.CharField(max_length=30)
class Comment(models.Model):
company = models.ForeignKey(Company, related_name='comments', on_delete=models.CASCADE)
date = models.DateField(auto_now_add=True)
comment_text = models.TextField()
访问某个公司的评论时,它将是
comments = company.comments.all()