Reputation: 2437
I am having the following issue (BTW I think I had not had this problem the day before):
>>> rule = Rule.objects.get(user=user)
>>> rule.id
1
>>> rule = Rule.objects.get(user=user).latest('id')
AttributeError: 'Rule' object has no attribute 'latest'
Why am I getting the error?
Upvotes: 6
Views: 8722
Reputation: 2525
The get() function of the Model Manager returns an instance of the Model itself.
The latest() function you mention belongs to the QuerySet class. Calling .filter(), .all(), .exclude() etc, all return a QuerySet.
What you're likely looking for is to first filter for the specific user, then get the latest result by 'id':
rule = Rule.objects.filter(user=user).latest('id')
See here for the docs on querying models
Upvotes: 11
Reputation: 368904
latest
method belongs to QuerySet
, not model.
Replace following line:
rule = Rule.objects.get(user=user).latest('id')
with:
rule = Rule.objects.filter(user=user).latest('id')
Upvotes: 3