我有以下問題最新的()方法(順便說一句,我認爲我還沒有這個問題的前一天):Django的模型
>>> rule = Rule.objects.get(user=user)
>>> rule.id
1
>>> rule = Rule.objects.get(user=user).latest('id')
AttributeError: 'Rule' object has no attribute 'latest'
爲什麼會出現錯誤?
我有以下問題最新的()方法(順便說一句,我認爲我還沒有這個問題的前一天):Django的模型
>>> rule = Rule.objects.get(user=user)
>>> rule.id
1
>>> rule = Rule.objects.get(user=user).latest('id')
AttributeError: 'Rule' object has no attribute 'latest'
爲什麼會出現錯誤?
模型管理器的get()函數返回的對象本身的一個實例。
您提到的latest()函數屬於QuerySet類。調用.filter(),.all(),.exclude()等,都會返回一個查詢集。
什麼你可能尋找的是爲特定用戶第一過濾器,然後通過獲得「身份證」的最新結果:
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')
感謝,再次!我只是好奇爲什麼get方法有問題? – jazzblue
@GregoryR,因爲['get'方法](https://docs.djangoproject.com/en/1.6/ref/models/querysets/#get)返回模型實例,而不是QuerySet對象。 (不像'filter'方法)。 – falsetru