我有以下问题(BTW我想我前一天没遇到过这个问题):
>>> rule = Rule.objects.get(user=user)
>>> rule.id
1
>>> rule = Rule.objects.get(user=user).latest('id')
AttributeError: 'Rule' object has no attribute 'latest'
为什么我收到错误?
Model Manager的get()函数返回Model本身的一个实例。
您提到的latest()函数属于QuerySet类。调用.filter(),. all(),. exclude()等都会返回QuerySet。
你可能想要的是首先过滤特定用户,然后通过'id'获得最新结果:
rule = Rule.objects.filter(user=user).latest('id')
请参阅此处了解querying models上的文档
latest
method属于QuerySet
,不属于模特。
替换以下行:
rule = Rule.objects.get(user=user).latest('id')
有:
rule = Rule.objects.filter(user=user).latest('id')