Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django取两个并排的物体_Python_Django - Fatal编程技术网

Python 在Django取两个并排的物体

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)

我正在创建Django应用程序,使用类似thingy的论坛。其中一个视图应该显示讨论列表,旁边是最后一篇文章

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)