@pydjango

Страница 966 из 1273
Dan
16.02.2018
11:31:01
стажеры жуны в хате есть ? задачка вам есть въюха https://gist.github.com/dantyan/add355082b590dc6fc15bc6c27b91677 задача вытащить featured товары затем самые популярные по просмотрам, но чтобы не дублировалось с featured есть два варианта выборки см. в коде чем они принципиально отличаются? какой из них правильный?

vadim
16.02.2018
11:36:14
orderby(?) - вроде считался жутко злым запросом

Dan
16.02.2018
11:36:35
в данном случае это не принципиально

Google
N. M.
16.02.2018
11:40:39
Emil
16.02.2018
11:40:47
values_list возвращает tuple всех pk так как flat=True. Думаю нет нужды обернуть это в list

Dan
16.02.2018
11:40:59
да сработает

Dmitriy
16.02.2018
11:41:16
в кол-ве квери разница

list() выполнит запрос

ненужный

Dan
16.02.2018
11:42:03
list() выполнит запрос
да, в таком случае какой будет правльный ?

Dmitriy
16.02.2018
11:42:22
Первый ?

Dan
16.02.2018
11:42:32
еще варианты будут ?

vadim
16.02.2018
11:42:34
Где про это почитать можно?
http://jan.kneschke.de/projects/mysql/order-by-rand/

ну или гугл order by rand - perfomance

Emil
16.02.2018
11:42:54
Я тоже думаю 1

Google
Dan
16.02.2018
11:43:47
ну я тоже так думал, поэтому его первым и написал ;)

Emil
16.02.2018
11:46:55
Значит второй вариант быстрее? Тоесть меньше sql запроса будет?

Dan
16.02.2018
11:47:20
Massimo
16.02.2018
11:48:47
if arm_form.is_valid(): obj = arm_form.save() dict=request.POST catch=dict['catchpk'] c = Route.objects.get(id=catch) lastorder = c.arms.order_by('order').last().order lastorder = lastorder + 1 rewrite = Arm(id=obj.pk, order=lastorder) rewrite.save() Тута я как бы объект сохраняю два раза первый раз в obj второй раз в rewrite, я же нагружать базу не хочу и хочу сохранять один раз. Делается это все за тем чтобы задавать другое значение order в объекте моедли Arm

Можно ли как то граммотно сделать чтобы не сохранять сначала объект а задать ему значение order?

Dmitriy
16.02.2018
11:50:10
arm_form.save(commit=False)

Dan
16.02.2018
11:51:55
arm_form.save(commit=False)
obj = arm_form.save(commit=False) obj.order=lastorder obj.save()

Massimo
16.02.2018
11:53:08
ОП благодарю!

Senpos
16.02.2018
11:53:25
Подскажите, если у меня в базе qs = [самый новый объект, более старый, еще более старый] и я сделаю x, y, z = qs[:3] то в каком порядке они распакуются?

в x попадет самый новый или самый старый?

Dan
16.02.2018
11:53:38
по вопросу еще варианты будут ?

Senpos
16.02.2018
11:54:26
по вопросу еще варианты будут ?
А если просто заэксклюдить featured Кверсиет? джанга по умному сделает новый запрос?

Dmitriy
16.02.2018
11:54:53
Ну тут можно предположить, что фокус в производительности саб квери в первом варианте

Dan
16.02.2018
11:56:10
чот народ неактивный попался я надеялся на больший ажиотаж, пятница же =)

Senpos
16.02.2018
11:57:11
А если просто заэксклюдить featured Кверсиет? джанга по умному сделает новый запрос?
Или вот такое в доке нашел featured = SellProduct.objects.filter(is_featured=True, status=SellProduct.STATUS_ACTIVE).order_by('?')[:4] popular = SellProduct.objects.difference(featured).filter(status=SellProduct.STATUS_ACTIVE).order_by('-views_count')[:4] https://docs.djangoproject.com/en/1.11/ref/models/querysets/#difference

Dmitriy
16.02.2018
11:57:42
ну я тоже так думал, поэтому его первым и написал ;)
Ну мы по этому сообщению уже выяснили, что второй вариант верный)

Dan
16.02.2018
11:58:43
в первом варианте запрос SELECT * FROM "sell_sellproduct" WHERE ("sell_sellproduct"."status" = 1 AND NOT ("sell_sellproduct"."id" IN (SELECT U0."id" FROM "sell_sellproduct" U0 WHERE (U0."is_featured" = true AND U0."status" = 1) ORDER BY RANDOM() ASC LIMIT 4))) ORDER BY "sell_sellproduct"."views_count" DESC LIMIT 4 во втором SELECT * WHERE ("sell_sellproduct"."status" = 1 AND NOT ("sell_sellproduct"."id" IN (105, 82, 83, 93))) ORDER BY "sell_sellproduct"."views_count" DESC LIMIT 4 те первый вариант выберет рандомно внутри подзапроса а во втором исключит тех которые будут показываться те по задаче второй вариант правильный

Dan
16.02.2018
12:02:36
difference так же делает в подзапросе

Emil
16.02.2018
12:04:43
Если они работают значит оба правильны)) тут уже вопрос производительности

Google
Dan
16.02.2018
12:05:11
нет

вопрос как раз таки в данных которые мы получаем

Dmitriy
16.02.2018
12:12:32
Интересная информация?

vadim
16.02.2018
12:17:36
есть ще бодяга с менитумени - когда filter().filter().filter() пишешь или все в 1 фильтер пихаешь, навскидку не вспомню, но orm там занятно строит запрос в зависимости от варианта

Dan
16.02.2018
12:20:42
да, тоже недавно нашел

помогло решить проблему

Artyem
16.02.2018
12:25:33
вопрос как раз таки в данных которые мы получаем
данные то должны быть одинаковыми, вот explain запросов будет отличаться. в ситуации с подзапросом, он сначала найдёт все строки которые удовлетворяют остальным условиям, а потом каждую проверит на вхождение в подзапрос. во втором случае он сразу отфильтрует 4 строки, и применит к ним нужные ограничения

Emil
16.02.2018
13:07:41
Подскажите пожалуйста... Есть модель class Catalogue(models.Model): name = models.CharFIeld(max_length=128) class Product(models.Model): catalogue = models.ForeignKey(Catalogue, on_delete=models.CASCADE) # Some other fields Дело в том что у товара из разных каталогов должны быть разные параметры. Поэтому такая модель не работает. Правильно ли сделать отдельные таблицы для каждого каталога и добавить туда товары типа class Catalogue1, class Catalogue2... или как иначе?

Просто это как то не джангистки чтоли получается)

Dan
16.02.2018
13:12:52
я делал таблицу Fields привязывал к категории manytomany но там надо переписывать формы

Massimo
16.02.2018
13:17:10
https://dpaste.de/QjKc гайс подскажите, хочу ушоб jQuery срабатывал при на жатии на него вставлял shit в необходимом месте. Но браузер ругается. Я так понимаю что я в синтаксисе ошибся

Dmitriy
16.02.2018
13:20:36
попробуй собрать свой селектор снаружи

Massimo
16.02.2018
13:24:54
попробуй собрать свой селектор снаружи
там json.data надо вставить в айди, как я соберу селектор снаружи?

Spacehug
16.02.2018
13:25:38
Ребят, по шкале вонючести от 1 до 10, говнокод на втором питоне без комментов и докстрингов, это сколько?

Dmitriy
16.02.2018
13:28:28
Massimo
16.02.2018
13:29:36
я это имел ввиду https://dpaste.de/8VYg#L2,5,6,13
А, чкерез переменную, спс

Google
Spacehug
16.02.2018
13:31:34
Нечитаемый

Даже если он быстро работает, маинтейнить его - боль

Kirill
16.02.2018
13:32:13
Подскажите пожалуйста реально ли в дефалтном джанговском i18n плагине использовать json формат файлов а не po. Что-то ничего не могу нагуглить, в доках тоже пусто, но малоли?

Massimo
16.02.2018
13:37:22
Uncaught Error: Syntax error, unrecognized expression: "#dialog58" нет, выдает ошибку

Milkiweed
16.02.2018
13:42:12
подскажите есть класс class Forwarder(models.Model): users = models.ManyToManyField (ViberUser, blank=True, verbose_name='Viber пользователи') created_date = models.DateTimeField('Дата создания',auto_now_add=False, auto_now=False,null=True, blank=True) делаю class Meta: ordering = ['-created_date', '-users'] И получаю ошибку 'ordering' refers to the nonexistent field 'users'. Что не так?

Какао
16.02.2018
13:43:25
А как ты хочешь сортировать по ManyToMany?

Admin
ERROR: S client not available

Milkiweed
16.02.2018
13:43:53
аа

Maksim
16.02.2018
14:03:18
Подскажите как запускать все тесты из разных приложений в одном проекте.

Dan
16.02.2018
14:18:19
ктонить может в двух словах сказать когда нужен git chery pick ?

Senpos
16.02.2018
14:19:01
>Просто копирование коммита в другую ветку

Dan
16.02.2018
14:19:19
чем он отличается от merge ?

Senpos
16.02.2018
14:19:53
мердж же прям две ветки сольет

а тут если есть нужный коммит то только его закинет в ветку

V
16.02.2018
14:20:31
@pydjango

Dmytro
16.02.2018
14:20:48
Dan
16.02.2018
14:22:12
да но в таком случае конфликты не разрешаться

Павел
16.02.2018
14:31:44
Господа, работал кто с Flask? Вопрос возможно аналогичный Django. Хочу сделать dynamic preference, который при загрузке приложения щупает базу на предмет наличия переменных и если их нет создаёт. Но так как использую ещё и Celery, то базу щупать до загрузки воркеров Celery нельзя. Как быть?

Pavel
16.02.2018
14:52:51
да но в таком случае конфликты не разрешаться
Мердж тоже может конфликтовать.

Google
Artem
16.02.2018
14:56:20
коллеги! Подскажите, как из бд получить строго чОтное количество объектов?

Hot
16.02.2018
14:57:21
Какое именно чётное?

Все, если число чётное и все, кроме одного, если нечётное?

Artem
16.02.2018
14:58:04
вот делаешь ты: select * from table_name where condition>n;

и вот тут мне надо вытащить строго чОтное количество строк

незаивисимо сколько там не было ьы

нашОл

SELECT CASE count("users_user"."id") % 2 WHEN 0 THEN 'Чотное' ELSE 'нечОтное' END, "users_user"."id", "users_user"."password", "users_user"."last_name" FROM "users_user" LEFT OUTER JOIN "users_follow" ON ("users_user"."id" = "users_follow"."user_id") WHERE "users_user"."id" = 1 GROUP BY "users_user"."id";

Igor
16.02.2018
15:24:01
У меня был случай, когда нужно было принимать только ПОСТ и без csrf, сделал так: @csrf_exempt @require_http_methods(["POST"])

Есть интересный вопрос: У меня есть модель Рейтинг, в ней по разным юзерам очки записываются, тоесть когда нужно просчитать балы каждого и просортировать по ним делаю это так: results = Results.objects.filter( created_at__gte=monday_date, created_at__lte=sunday_date ) \ .values('user__email') \ .annotate(total=Sum('score'))\ .order_by('-total')[:20]

А если надо кроме верхушки результатов взять еще и результат определенного пользователя, который может быть и сотым, а также ближайших его суперников, как это сделать что бы минимизировать количество запросов в бд??

Alexei
16.02.2018
15:28:45
всем привет, есть вопрос по wagtail как можно вытянуть данные из него в обычной питон файле?

Страница 966 из 1273