Python 在Django取两个并排的物体
我正在创建Django应用程序,使用类似thingy的论坛。其中一个视图应该显示讨论列表,旁边是最后一篇文章Python 在Django取两个并排的物体,python,django,Python,Django,我正在创建Django应用程序,使用类似thingy的论坛。其中一个视图应该显示讨论列表,旁边是最后一篇文章 class Discussion(models.Model): <snip> topic = models.CharField(max_length=512) class DiscussionPost(models.Model): <snip> target = models.ForeignKey(Discussion)
class Discussion(models.Model):
<snip>
topic = models.CharField(max_length=512)
class DiscussionPost(models.Model):
<snip>
target = models.ForeignKey(Discussion)
author = models.ForeignKey(User)
content = models.TextField(max_length=16000)
creation_date = models.DateTimeField(auto_now_add=True)
我试图通过将字段last\u post=models.ForeignKey(DiscussionPost,null=True)
添加到DiscussionPost来解决这个问题,并更改DiscussionPost中的“save”方法,如下所示:
def save(self, *args, **kwargs):
if self.pk == None:
i_am_new = True
else:
i_am_new = False
super(DiscussionPost, self).save(*args, **kwargs)
if i_am_new:
self.target.last_post=self
self.target.save()
但这会产生循环依赖,根本无法编译
有人知道解决这个问题的方法吗?这似乎很容易,但我被卡住了…来解决您的循环依赖性: 问题是:在讨论中使用FK时,DiscussionPost尚未声明。 将尚未声明的模型的名称放在引号中
models.ForeignKey('DiscussionPost', null=True)
请参阅:谢谢您的帮助:)在您编写之后,我在Django文档中发现了一些东西。
models.ForeignKey('DiscussionPost', null=True)