Size: a a a

Django [ru] #STAY HOME

2020 July 10

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Но это работает с одной строкой, теперь нужно больше)))
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Миркамал Самиев
тогда получается слишком сложный запрос так как мне нужно много записей получить из базы
Лучше так + prefetch и норм вроде
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
проще наверно показать
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
'''
def getProductPrices(pk,order_type):
 return models.Product.objects.prefetch_related('otd_products')\
             .filter(id=pk,otd_products__id_order_type=order_type)\
               .values('otd_products__id_price','otd_products__id_price__value','otd_products__id_dimension__name','otd_products__quantity')\
                 .annotate(value=F('otd_products__id_price__value'),dimension=F('otd_products__id_dimension__name'),
                       id=F('otd_products__id_price'),quantity=F('otd_products__quantity')).\
                   values('id','value','dimension','quantity')
'''
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Миркамал Самиев
'''
def getProductPrices(pk,order_type):
 return models.Product.objects.prefetch_related('otd_products')\
             .filter(id=pk,otd_products__id_order_type=order_type)\
               .values('otd_products__id_price','otd_products__id_price__value','otd_products__id_dimension__name','otd_products__quantity')\
                 .annotate(value=F('otd_products__id_price__value'),dimension=F('otd_products__id_dimension__name'),
                       id=F('otd_products__id_price'),quantity=F('otd_products__quantity')).\
                   values('id','value','dimension','quantity')
'''
Нормальный запрос:)
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Миркамал Самиев
'''
def getProductPrices(pk,order_type):
 return models.Product.objects.prefetch_related('otd_products')\
             .filter(id=pk,otd_products__id_order_type=order_type)\
               .values('otd_products__id_price','otd_products__id_price__value','otd_products__id_dimension__name','otd_products__quantity')\
                 .annotate(value=F('otd_products__id_price__value'),dimension=F('otd_products__id_dimension__name'),
                       id=F('otd_products__id_price'),quantity=F('otd_products__quantity')).\
                   values('id','value','dimension','quantity')
'''
Просто пользуйтесь Django code style, особенно в переносе строк
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
я сравнил этот запрос и то что сделал вручную циклами во втором варианте получилось чуть быстрее.
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Миркамал Самиев
я сравнил этот запрос и то что сделал вручную циклами во втором варианте получилось чуть быстрее.
Это значит вам стоит проверить запрос через profiler, попробуйте поглядеть на explain
источник

S

Shodmon in Django [ru] #STAY HOME
Миркамал Самиев
я сравнил этот запрос и то что сделал вручную циклами во втором варианте получилось чуть быстрее.
А количество запросов?
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
запрос на около 100 записей
источник

MB

Muslim Beibytuly in Django [ru] #STAY HOME
Миркамал Самиев
запрос на около 100 записей
Вам стоит поглядеть, так как Python который генерирует в цикле sql не будет быстрее одного sql-запроса
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
@idAndrey ты наверняка знаешь, как регуляркой захватить несколько строк? abc\n*.*\n*abc работает только с одной строкой, для каждой новой приходится добавлять \n
источник

A

Andrey in Django [ru] #STAY HOME
Nikolay Cherniy
@idAndrey ты наверняка знаешь, как регуляркой захватить несколько строк? abc\n*.*\n*abc работает только с одной строкой, для каждой новой приходится добавлять \n
Ой
Я сходу не скажу, а погуглить не смогу
Я не у компа
источник

AD

Alex Dem in Django [ru] #STAY HOME
Миркамал Самиев
я сравнил этот запрос и то что сделал вручную циклами во втором варианте получилось чуть быстрее.
надо дополнять список в prefetch_related
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Andrey
Ой
Я сходу не скажу, а погуглить не смогу
Я не у компа
Понял, спасибо, бум гуглить)
источник

МС

Миркамал Самиев... in Django [ru] #STAY HOME
Alex Dem
надо дополнять список в prefetch_related
не совсем понял
источник

AD

Alex Dem in Django [ru] #STAY HOME
Миркамал Самиев
'''
def getProductPrices(pk,order_type):
 return models.Product.objects.prefetch_related('otd_products')\
             .filter(id=pk,otd_products__id_order_type=order_type)\
               .values('otd_products__id_price','otd_products__id_price__value','otd_products__id_dimension__name','otd_products__quantity')\
                 .annotate(value=F('otd_products__id_price__value'),dimension=F('otd_products__id_dimension__name'),
                       id=F('otd_products__id_price'),quantity=F('otd_products__quantity')).\
                   values('id','value','dimension','quantity')
'''
тот же есть переходы в соседние таблицы которые не указаны в prefetch_related
скорее всего там формируются лишние запросики
источник

F

Forget-me-not in Django [ru] #STAY HOME
Всем привет. Делаю приложеньку на django-channels. Пытаюсь задеплоить через docker-compose на Daphne. Перед запуском приложеньги дергаю мигрейт и коллект статик, но в итоге Daphne дает ошибки поиска статик файлов. Есть какие-то мысли?
источник

A

Andrey in Django [ru] #STAY HOME
Nikolay Cherniy
Понял, спасибо, бум гуглить)
Попробуй в набор добавить
Пока можешь скинуть пример текста и что найти надо, я как усядусь – пораскину мозгами
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Andrey
Попробуй в набор добавить
Пока можешь скинуть пример текста и что найти надо, я как усядусь – пораскину мозгами
пример:
ключевое_слово
какой-то текст хз на сколько строк
ключевое_слово

если при этом захватятся варианты когда всё на одной строке и различное количество пробелов на строке с ключевым словом - вообще прекрасно)
источник