我正在创建一个允许用户创建位置评论的应用。我在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)
答案 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
字段,它们是完全独立的字段。