2015-02-21 3 views
0
latest_entries = Entry.objects.filter(
    zipcode=request.user.my_profile.nearbyzips1 
).filter(
    zipcode=request.user.my_profile.nearbyzips2 
).filter(
    zipcode=request.user.my_profile.nearbyzips3 
) 

Это, кажется, не возвращает никаких Entry объектов, даже если это необходимо.Почему мой прикованный Django запрос не работает?

Примечание: Если бы я должен был удалить всю цепочку, он просто оставил исходный фильтр nearbyzips1, он возвращает все объекты Entry, соответствующие этому zipcode. Так это говорит мне, что моя цепочка что-то ломает.

Что я делаю неправильно?

Я не использую никаких m2m или внешних ключей.

ответ

4

Думаю, вам нужно найти все записи, содержащие один из заданных zipcodes. Правильный подход:

Entry.objects.filter(zipcode__in=[ 
    request.user.my_profile.nearbyzips1, 
    request.user.my_profile.nearbyzips2, 
    request.user.my_profile.nearbyzips3 
]) 

Этот запрос возвращает все записи, имеющие индекс zip-кода, одно из значений массива. В запросе, который вы указали, просто пытается найти все записи с zipcode, равными всем заданным zip-кодами одновременно. Так что нормально ничего не возвращать.

+0

О, круто, это ВИДЕТЬ того, что я пытался сделать раньше, но я предполагаю, что у меня был неправильный синтаксис. Спасибо, я сделаю это. – stephan

+0

Я продолжаю получать ошибки отступа. – stephan

+0

просто положил все это в одну строку – JuniorCompressor

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