1. Фильтрация

    13.03.2013

    0 ↑
    0 ↓
    class Car(models.Model):
    ...
    metallic = models.BooleanField(verbose_name='Металлик')
    Делаю такую выборку, ругается
          
    cars = Car.objects.all().order_by('price')[0:10]
    cars = cars.fiter(metallic=True)
    AssertionError: Cannot filter a query once a slice has been taken.
    А если же просто
    cars = Car.objects.all().order_by('price')[0:10]
    cars = cars.fiter(metallic=True)
    тогда фильтрация происходит нормально.
    Не могу понять почему так происходит.
  2. 4aser

    13.03.2013

    0 ↑
    0 ↓
    Ошибся вверху
    Вот так нормально фильтруется
    cars = Car.objects.all().order_by('price')
    cars = cars.fiter(metallic=True)
  3. aspant

    13.03.2013

    0 ↑
    0 ↓
    После среза ([0:10]) вы уже не можете производить фильтрацию
  4. 4aser

    13.03.2013

    0 ↑
    0 ↓
    А срез это разве не есть тоже фильтрация?
  5. Катаев Денис

    13.03.2013

    0 ↑
    0 ↓
    Увы нет.
  6. aspant

    14.03.2013

    0 ↑
    0 ↓
    filter() - это в sql WHERE
    [0-10] - это LIMIT\OFFSET
  7. Grigory Fateyev

    14.03.2013

    0 ↑
    0 ↓

    Зачем помогать такому человеку, которому даже лень название темы нормально сформулировать? Форум превращают в унылую помойку... :(

  8. Катаев Денис

    14.03.2013

    0 ↑
    0 ↓
    Grigory Fateyev, уровень вопроса несомненно низкий, но уровень ответов зависит только от нас.
    Не хотите не отвечайте. Но чем популярней язык тем больше таких вопросов это несомненно.
  9. mail@kvove.ru

    14.03.2013

    0 ↑
    0 ↓
    Меня тоже начинают пугать вопросы на форуме:(
    Кажется phpшники переходят на django.
  10. Роман

    14.03.2013

    0 ↑
    0 ↓
    такие посты можно редиректить на python.su :D

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.