Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 25, 2020 15:37:34

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

Django. Как реализовать условия в запросе? или как удалить элемент из списка

У меня есть таблица “Table” и строковое поле “field”.
Мне нужно реализовать в запросе следующее условие:

 if (field.isdigit() and len(strip(field)) <= 4):
    do somethimg

или

 if (field.isdigit() and int(field) <= 10000):
    do somethimg

Как это выглядит в квери запросе у Джанго?
то есть мне нужно получить что-то типа этого
 Table.objects.filter(условие).update(field="xxx")
.
или же мне нужно альтернативное решение - как удалить элемент из списка.
Есть список с несколькими строковыми значениями типа
 ["qqqqq", "eeeee", "dddddd", "aaa"]
.
Как найти в списке члены, длина которых, например, меньше/равна 3 символа и удалить их из списка?
перебор по одному исключен
Спасибо

Отредактировано gtlhbkkj (Апрель 25, 2020 17:07:55)

Офлайн

#2 Апрель 25, 2020 18:43:51

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Django. Как реализовать условия в запросе? или как удалить элемент из списка

Для формирования запроса тебе подойдет использование Q object
попробуй сформировать запрос как-то так

 from django.db.models import Q
Table.objects.filter((Q(field.isdigit()) & Q(len(strip(field)) <= 4) | (Q(field.isdigit() & Q(int(field) <= 10000))).update(field="xxx")

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version