Size: a a a

Django [ru] #STAY HOME

2019 June 13

SK

Shokhrukh Komolov in Django [ru] #STAY HOME
Добрый день, делаю вывод данных из бд. с авто генерацией ключей для фильтра выдает ошибку(too many values to unpack (expected 2) ) код:
def key_query_set(keys):
query_keys = []
for key in keys:
query_keys.append("Q(text__contains=\"{}\")".format(key.title))
query_keys_list = tuple(query_keys)
query_keys_str = str(query_keys_list).strip('[]')
query_keys_str = query_keys_str.replace(",", " |")
query_keys_str = query_keys_str.replace("'", "")
query_keys_str = query_keys_str.replace("\"", "'")
return query_keys_str
items = Items.objects.select_related('wall').filter(Q(wall__name=''), f"{keys}")

без авто генерацией выводит данные
items = Items.objects.select_related('wall').filter(Q(wall__name=''), (Q(text__contains="qqqq") | Q(text__contains="qqqq") | Q(text__contains="qqqq")))
источник

AN

Alexy Nesterchuk in Django [ru] #STAY HOME
Petr B.
и уже в своем фильтерсете что нужно делаешь
спасибо. Потом переопределить def qs(self): ?
источник

AF

Anton Fircak in Django [ru] #STAY HOME
ребят привет подскажите плз какой сигнал отправляется при добавлении новой записи в бд через админку и через Model.create?
источник

y

yllw in Django [ru] #STAY HOME
там несколько сигналов вроде, pre_save и post_save
источник

PB

Petr B. in Django [ru] #STAY HOME
Alexy Nesterchuk
спасибо. Потом переопределить def qs(self): ?
цель - руками отфильтровать по какому-то урл-параметру?
источник

AN

Alexy Nesterchuk in Django [ru] #STAY HOME
Petr B.
цель - руками отфильтровать по какому-то урл-параметру?
да, к примеру по ?&company=1&company=2
источник

PB

Petr B. in Django [ru] #STAY HOME
Alexy Nesterchuk
да, к примеру по ?&company=1&company=2
источник

AN

Alexy Nesterchuk in Django [ru] #STAY HOME
спасибо, буду разбираться
источник

DK

Denis Kopitsa in Django [ru] #STAY HOME
Shokhrukh Komolov
Добрый день, делаю вывод данных из бд. с авто генерацией ключей для фильтра выдает ошибку(too many values to unpack (expected 2) ) код:
def key_query_set(keys):
query_keys = []
for key in keys:
query_keys.append("Q(text__contains=\"{}\")".format(key.title))
query_keys_list = tuple(query_keys)
query_keys_str = str(query_keys_list).strip('[]')
query_keys_str = query_keys_str.replace(",", " |")
query_keys_str = query_keys_str.replace("'", "")
query_keys_str = query_keys_str.replace("\"", "'")
return query_keys_str
items = Items.objects.select_related('wall').filter(Q(wall__name=''), f"{keys}")

без авто генерацией выводит данные
items = Items.objects.select_related('wall').filter(Q(wall__name=''), (Q(text__contains="qqqq") | Q(text__contains="qqqq") | Q(text__contains="qqqq")))
Не надо делать строку. Сделай dict ключ:параметр, а затем qs.filter(**params)
источник

SK

Shokhrukh Komolov in Django [ru] #STAY HOME
Denis Kopitsa
Не надо делать строку. Сделай dict ключ:параметр, а затем qs.filter(**params)
ша попробую
источник

AF

Anton Fircak in Django [ru] #STAY HOME
ребят подскажите мождно ли в сигнал передать список методов, которые надо ловить
источник

PB

Petr B. in Django [ru] #STAY HOME
Denis Kopitsa
Не надо делать строку. Сделай dict ключ:параметр, а затем qs.filter(**params)
можно
criteria = Q()
if A:
   criteria = criteria & Q(a__field='b')
...
qs = qs.filter(criteria)
источник

DK

Denis Kopitsa in Django [ru] #STAY HOME
Можно. Но для динамических параметров так больше кода будет.
источник

PB

Petr B. in Django [ru] #STAY HOME
Denis Kopitsa
Можно. Но для динамических параметров так больше кода будет.
зато контроля над фильтрацией больше
источник

PB

Petr B. in Django [ru] #STAY HOME
и можно комбинировать | или &, использовать ~
источник

DK

Denis Kopitsa in Django [ru] #STAY HOME
да, для не-and комбинаций такой вариант единственный
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Ребят подскажите метод для доавбления записи в админку хочу переопределить его
источник

DK

Denis Kopitsa in Django [ru] #STAY HOME
но я замечаю, что многие не знают как сформировать и передать динамические параметры в функцию через func(**kwargs)
источник

DK

Denis Kopitsa in Django [ru] #STAY HOME
Anton Fircak
Ребят подскажите метод для доавбления записи в админку хочу переопределить его
нужно только для админки или для любого сохранения модели?
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Denis Kopitsa
нужно только для админки или для любого сохранения модели?
хотелось бы для любого, значит save юзать? модели
источник