【发布时间】:2019-06-15 00:34:57
【问题描述】:
我正在使用 Django 和 Python 3.7。我的 models.py 文件中有以下两个模型...
class Article(models.Model):
created_on = models.DateTimeField(default=datetime.now)
...
class ArticleStat(models.Model):
article = models.ForeignKey(Article, on_delete=models.CASCADE, )
elapsed_time_in_seconds = models.IntegerField(default=0, null=False)
我想编写一个 Django ORM 查询,其中我选择的文章具有至少 5 分钟(300 秒)旧的统计信息。但是,我不知道如何从 Article 对象中引用 ArticleStat 对象。不出所料,这个
Article.objects.filter(articlestat.elapsed_time_in_seconds.lte==300)
产生一个
NameError: name 'articlestat' is not defined
错误。
编辑:根据答案,我将我的 ArticleStat 模型更改为
class ArticleStat(models.Model):
article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='articlestats')
然后我运行了下面的查询来显示错误
Article.objects.filter(articlestat_set__elapsed_time_in_seconds__lte==300)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'articlestat_set__elapsed_time_in_seconds__lte' is not defined
我想也许有一个实例有多个,所以我尝试了一个“s”,但得到了一个错误..
Article.objects.filter(articlestats_set__elapsed_time_in_seconds__lte==300)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'articlestats_set__elapsed_time_in_seconds__lte' is not defined
【问题讨论】:
标签: python sql django python-3.x orm