supermario
supermario

Reputation: 2755

Why can I not get a field's datetime value from queryset?

This may sounds stupid but has bugged me for a while. I have this model:

class LastVisited(models.Model):
    user = models.ForeignKey(User)
    topic = models.ForeignKey(Topic)
    lastvisited = models.DateTimeField(auto_now=True)

I want to get lastvisited in order to compare it with datetime.now().

So when I query it:

lastv = LastVisited.objects.filter(topic_id=t.id, user_id=request.user.id)
print 'lastv\n', lastv
print 'lastv date \n',  lastv.lastvisited

I get

[<LastVisitedTopic: LastVisitedTopic object>]

but the lastv.lastvisited is empty.

I tried to get values from queryset instead:

lastv = LastVisited.objects.filter(topic_id=t.id, user_id=request.user.id).values('lastvisited')

It prints out:

[{'lastvisited': datetime.datetime(2015, 12, 22, 18, 58, 15, tzinfo=<UTC>)}]

So the field is not empty but it is not accessible through usual .field method.

How can I fix this?

Upvotes: 0

Views: 48

Answers (1)

Shang Wang
Shang Wang

Reputation: 25539

You are doing LastVisited.objects.filter, that would give you a queryset. Queryset doesn't have lastvisited attribute. Do LastVisited.objects.get instead.

Upvotes: 1

Related Questions