解决循环导入问题后未链接的模型

时间:2016-04-21 19:42:21

标签: django

我正在创建一个允许用户创建位置评论的应用。我在Django中遇到了循环导入的问题,我在查看这篇文章后解决了这个问题:Django - Circular model import issue

我所做的是摆脱locations.models中的导入并对我的Review模型进行惰性导入。在Django管理员中,我可以创建一个Review并将其分配给一个Location。但是,当我在Django admin中打开该位置时,它没有任何链接的评论。

到目前为止,Haven找不到任何建议为什么我的位置没有显示我创建的评论。任何帮助或提示都非常感谢。

Django = 1.9起Python = 2.7

由于



locations.models.py:

class Location(models.Model):
    ...
    reviews = models.ForeignKey('reviews.Review', null=True, blank=True, related_name="location_reviews")

reviews.models.py:

from locations.models import Location

class Review(models.Model):
    ...
    location = models.ForeignKey(Location, on_delete=models.CASCADE)

1 个答案:

答案 0 :(得分:0)

如果您有外键Review.location,则表示每次审核都属于一个位置。

class Review(models.Model):
    ...
    location = models.ForeignKey(Location, on_delete=models.CASCADE)

然后,您可以从location向后关注关系,以查看其评论。

location.review_set.all()

有关详细信息,请参阅following relationships backwards上的文档。

您可能不需要在两个模型上定义外键。定义外键Location.review意味着每个位置都有一个评论(或没有评论),这实际上没有意义。设置review.location不会更新该位置的reviews字段,它们是完全独立的字段。