Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django model latest() method

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?

like image 597
jazzblue Avatar asked Jan 12 '14 17:01

jazzblue


1 Answers

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

like image 153
Dwight Gunning Avatar answered Sep 22 '22 05:09

Dwight Gunning