2015-01-05 4 views
3

Я пытаюсь вернуть самую последнюю дату из числа записей пользователем.django возвращает самую последнюю дату записи

Когда пользователь создает документ, созданная дата сохраняется в модели CreatedDocumentDetails.

Я не могу вернуть дату последнего созданного документа пользователем.

Я спросил об этом question on SO, который относится к проблеме.

Вот мой model.py код:

class CreatedDocumentDetails(models.Model): 
    user = models.ForeignKey(User) 
    created_document_timestamp = models.DateTimeField(auto_now_add=True, blank=True) 

    def __unicode__(self): 
     return unicode(self.user) 

Вот мой views.py код:

def get_latest_created_document_date(user): 
    ?? 
    return latest_created_document_date 

Я понимаю, что я должен передать дату в фильтре get_latest_created_document_date зрения пользователь, но после поиска SO, Google и Django docs я все еще не могу понять это самостоятельно.

ответ

6

Вы хотите использовать order_by QuerySet filter, например, так:

CreatedDocumentDetails.objects.order_by('-created_document_timestamp').first() 

Поскольку вы используете поле даты, вы можете также использовать latest filter как так:

CreatedDocumentDetails.objects.latest('created_document_timestamp') 

Как catavaran состояния в комментариях

Обратите внимание, что если в таблице нет записей, то first() вернется None но latest() поднимет DoesNotExist исключение

Чтобы просто получить штамп времени, вы можете добавить поле до конца, поскольку оба запроса дадут один объект:

CreatedDocumentDetails.objects.order_by('-created_document_timestamp').first().created_document_timestamp 

или

CreatedDocumentDetails.objects.latest('created_document_timestamp').created_document_timestamp 
+2

Обратите внимание, что если в таблице нет записей, то 'first()' будет возвращать 'None', а' latest() 'будет вызывать исключение' DoNotExist'. – catavaran

+1

Lego Stormtroopr, ваше предложение CreatedDocumentDetails.objects.latest ('created_document_timestamp') возвращает имя пользователя. как мне вернуть самую последнюю дату создания документа? – user4307426

+2

Он возвращает весь объект, я не уверен, как он дает имя пользователя. В любом случае, я обновлю ответ. –

Смежные вопросы