python - 'ReverseManyToOneDescriptor' 对象没有属性 'latest'

标签 python django attributeerror

我在尝试运行函数时收到此错误。这是我的第一个 django/python 项目,所以我没有这方面的经验。我已经搜索过此错误,但没有发现任何类似的错误。

def getpriority(chunks):
    p = 0
    for chunk in chunks:
        a = chunk.result_set.all()
        l = a.latest()
        if pytz.utc.localize(datetime.now()) - l.timestamp > datetime.timedelta(days=3):
            x = getresult(chunk)
            print(x)

我正在尝试为我的 block 模型分配优先级,以便我可以选择具有最高优先级的 block 来使用该对象。

我认为我的错误是在“a”上调用 latest()

当我在 django shell 中运行 Chunk.result_set.latest() 时,出现以下错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'ReverseManyToOneDescriptor' object has no attribute 'latest'

在我的结果模型中,我设置了 get_latest_by,我认为这是运行 .latest() 所必需的:

class Result(models.Model):
    rel_chunk = models.ForeignKey(Chunk, on_delete=models.CASCADE)
    score = models.IntegerField()
    timestamp = models.DateTimeField(auto_now_add=True)

    class Meta:
        get_latest_by = 'timestamp'

我认为错误在于我在相关对象集上调用 latest 但如果不能在相关对象集上调用那么我如何才能找到最新的相关结果?

最佳答案

应该是 chunk.result_set.latest() 而不是 Chunk.result_set.latest()

请注意,chunk 应该是实例而不是类模型。

关于python - 'ReverseManyToOneDescriptor' 对象没有属性 'latest',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40250430/

相关文章:

python - Flake8Lint 错误 : AttributeError: 'NoneType' object has no attribute 'kind'

python - AttributeError - 即使似乎没有属性错误

python - 是否可以使用 python 装饰器将特定的单元测试定向到正在测试的不同实例?

python - 奇数和代码问题

python - django批量创建忽略重复项

python - 从 Django 2.0 中的 LiveServerTestCase 获取正确的端口号

python - Django + Celery + SQS 设置。 Celery 通过 ampq 连接到默认的 RabbitMQ

python - AttributeError: 'str' object has no attribute 'sub' Python代码

php - 在沙盒模式下运行 PHP、Ruby 或 Python 进程

关于 sum 函数的 Python 弃用警告