Size: a a a

Django [ru] #STAY HOME

2020 April 22

Н

Никита in Django [ru] #STAY HOME
Антон
Всем привет!
В бд есть datetimefield, хочу сделать выборку этого поля как строку, но при этом получить вместо номера месяца его название.
Номер месяца достаю с помощью ExtractMonth.
Доку ковырял ничего не нашел.
calendar.mount_name[mounthnumber] так не смотрел?
источник

O

Orekhov Web Dev. in Django [ru] #STAY HOME
всем привет, начинаю изучать джанго, нашел слитые курсы от скиллфактори, НО они по джанго 2.1.5
Подскажите сильно ли отличаются от актуальной версии?
источник

А

Антон in Django [ru] #STAY HOME
Никита
calendar.mount_name[mounthnumber] так не смотрел?
это понятно, но как в рамках запроса вытащить именно название месяца, а не после этого обрабатывать queryset.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Антон
это понятно, но как в рамках запроса вытащить именно название месяца, а не после этого обрабатывать queryset.
попробуй так:
from django.db.models import Func

class ExtractMonthName(Func):
   function = "to_char"
   template = "%(function)s(%(expressions)s, 'month')"



queryset.annotate(month_name=ExtractMonthName('datetime_field_name', output_field=CharField()))

может сработает)

это для постгрес:
https://www.postgresql.org/docs/7.4/functions-formatting.html
источник

A

Andrey in Django [ru] #STAY HOME
Artem Gubatenko
попробуй так:
from django.db.models import Func

class ExtractMonthName(Func):
   function = "to_char"
   template = "%(function)s(%(expressions)s, 'month')"



queryset.annotate(month_name=ExtractMonthName('datetime_field_name', output_field=CharField()))

может сработает)

это для постгрес:
https://www.postgresql.org/docs/7.4/functions-formatting.html
Если у постгресе локаль настроена
источник

A

Andrey in Django [ru] #STAY HOME
Предполагаю
источник

А

Антон in Django [ru] #STAY HOME
Artem Gubatenko
попробуй так:
from django.db.models import Func

class ExtractMonthName(Func):
   function = "to_char"
   template = "%(function)s(%(expressions)s, 'month')"



queryset.annotate(month_name=ExtractMonthName('datetime_field_name', output_field=CharField()))

может сработает)

это для постгрес:
https://www.postgresql.org/docs/7.4/functions-formatting.html
Как раз к этому и пришел, с помощью функций доставать месяц.
Спасибо!
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Andrey
Если у постгресе локаль настроена
если не настроена - заругается или что-нибуть попытается показать?
источник

A

Andrey in Django [ru] #STAY HOME
Artem Gubatenko
если не настроена - заругается или что-нибуть попытается показать?
Да просто будет в установленной выводить
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Антон
Как раз к этому и пришел, с помощью функций доставать месяц.
Спасибо!
ты попробуй и отпишись))
впервые функцию для БД сделал
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Andrey
Да просто будет в установленной выводить
уже будет прогресс)
источник

А

Антон in Django [ru] #STAY HOME
Artem Gubatenko
ты попробуй и отпишись))
впервые функцию для БД сделал
уже запустил, все норм.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Антон
уже запустил, все норм.
круто 👍
источник

A

Andrey in Django [ru] #STAY HOME
Антон
уже запустил, все норм.
На русском вернуло?
источник

А

Антон in Django [ru] #STAY HOME
Andrey
На русском вернуло?
+ у меня локаль в докере была прописана.
источник
2020 April 23

AM

Arnak Melikyan in Django [ru] #STAY HOME
имею такой task в celery, который работает с объектом Transaction

@periodic_task(run_every=(crontab(minute='*/1')))


на этом Transaction есть еще post_save signal

@receiver(post_save, sender=Transaction)

вопрос в том, что при сохранении модели Transaction в таске, post_save не страбатывает.

в чем тайна?
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Arnak Melikyan
имею такой task в celery, который работает с объектом Transaction

@periodic_task(run_every=(crontab(minute='*/1')))


на этом Transaction есть еще post_save signal

@receiver(post_save, sender=Transaction)

вопрос в том, что при сохранении модели Transaction в таске, post_save не страбатывает.

в чем тайна?
Показывай код таски и сигнала, конечно
источник

A

Andrey in Django [ru] #STAY HOME
В том что сигналы не надо использовать
источник

AM

Arnak Melikyan in Django [ru] #STAY HOME
@periodic_task(ignore_result=True, run_every=(crontab(minute='*/1')))
def _async_check_order_status():
   transaction_status = {"PAID": '1', "REJECTED": '2', "EXPIRED": '3', "CANCELLED": '4', "CANCELLED FOR REPEAT": '5'}
   checks = CustomerTransaction.objects.all().filter(source=1, processed=0)
   if len(checks) > 0:
       m = MerchantData.objects.filter(source=1).get()
       api = MerchantApi(m.merchant_password, m.merchant_login, m.merchant_endpoint)
       for check in checks:
           data = api.check_order_state(check.ext_id, check.id)
           response = json.loads(data)
           if response['status'] == 'NEW':
               pass
           else:
               status = response['status']
               logger.info(response)
               check.processed = transaction_status[status]
               check.save()
источник

А

Антон in Django [ru] #STAY HOME
сигналы инициализировал в apps.py?
источник