我正在使用Django框架創建簡單的論壇站點,並創建了評論模型,此時我的評論模型與Post有OneToOne關係,這意味着每個時刻都屬於到具體的帖子,但也有我想提供的另一個功能。每個評論模型都應該有可能與Post對象或相關。答案模型就像堆棧溢出一樣,你添加一個帖子,另一個用戶可以添加一個答案。我想提一下,答案與Post One OneOne關係太相關,我認爲這將是足夠的,並且不需要版本。 總結:如何允許向Post對象或Answer對象添加註釋? 另外我想說,我正在考慮創建兩個評論模型,即PostComment和AnswerComment,但我得出的結論是非常糟糕的解決方案。如何使一個模型與另兩個模型之間的關係
class Post(models.Model):
subject = models.CharField(max_length=100)
description = models.TextField(null=True)
section = models.ForeignKey(Section, on_delete=models.CASCADE, null=True)
author = models.ForeignKey(User, null=True, blank=True)
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
slug = models.SlugField(max_length=100, null=True)
active = models.BooleanField(default=True)
def __str__(self):
return self.subject
def publish(self):
self.published_date = timezone.now()
self.save()
def close(self):
self.active = False
self.save()
class Comment(models.Model):
content = models.CharField(max_length=600)
post = models.OneToOneField(Post, on_delete=models.CASCADE)
author = models.ForeignKey(User, null=True, blank=True)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return "Comment to post: {0} added by {1} at {2}.".format(self.post.subject, self.author, self.published_date)
class Answer(models.Model):
content = models.TextField()
post = models.OneToOneField(Post, on_delete=models.CASCADE)
author = models.ForeignKey(User, null=True, blank=True)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return "Answer to post: {0} added by {1} at {2}.".format(self.post.subject, self.author, self.published_date)
爲什麼在評論中回覆字段與Post相關聯兩次,但在兩個不同的字段中? – dannyxn
@dannyxn對不起,這是一個錯誤。 –
沒問題。我會在稍後嘗試。 – dannyxn