2010-02-04 4 views
0

Я хочу, чтобы получить самый последний добавленный элемент, и если его нет вообще, присваивать некоторые значения по умолчанию, такие как:Джанго, фильтрация самый последний добавленный элемент

query = X.objects.filter(name="aa",type="b")[0] 
if query: 
    resultname =query.name 
    resulttype = query.type 
else: 
    resultname = "a default name" 
    resulttype = "a default type" 

Это не работает, как это повысит исключение, когда первая строка, query = X.objects.filter(name="aa",type="b")[0], выполняет и отфильтрованный список запросов пуст.

+0

Это не обязательно возвращает последний добавленный элемент. Только первый элемент 'QuerySet'. Вы должны заказать поле модели, например. 'Created_at'. –

ответ

0

Индексирование QuerySet приводит к созданию единой модели, если таковая имеется. Либо поймать исключение, если его не существует, либо использовать len() заранее на QuerySet, чтобы узнать, были ли найдены записи.

+0

Какое будет связанное исключение, если оно не существует? Спасибо – Hellnar

+0

Не знаю. Попробуйте и проверьте журналы. –

+0

кроме IndexError: кажется, исправить это, ty – Hellnar

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