Size: a a a

Django [ru] #STAY HOME

2020 April 06

AG

Artem Gubatenko in Django [ru] #STAY HOME
Oleg Shleiko
Всем доброго дня. Подскажите пожалуйста, можно ли на уровне ОРМ выполнить следующее:
brand_name = ''
if product.brand:
   brand_name = product.brand.name
я делал в аннотированном поле
источник

OS

Oleg Shleiko in Django [ru] #STAY HOME
Artem Gubatenko
я делал в аннотированном поле
а можно пример или статью?
источник

OS

Oleg Shleiko in Django [ru] #STAY HOME
вот такое?
>>> Client.objects.annotate(
...     discount=Case(
...         When(registered_on__lte=a_year_ago, then=Value('10%')),
...         When(registered_on__lte=a_month_ago, then=Value('5%')),
...         default=Value('0%'),
...         output_field=CharField(),
...     )
... ).values_list('name', 'discount')
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Oleg Shleiko
а можно пример или статью?
У меня была ситуация чуть проще.
Так как тебе нужно достать через связь, то возможно так сработает:
Client.objects.annotate(
   new_name=Case(
       When(product__brand__isnull=False, then=F("product__brand__name")),
       default=None,
       output_field=CharField()
   )
).annotate(
   brand_name=Coalesce(new_name, Value(""))
)

Или так:
Client.objects.annotate(
   brand_name=Coalesce(F("product__brand__name"), Value(""))
)

** поправил "Coalesce"
источник

OS

Oleg Shleiko in Django [ru] #STAY HOME
Artem Gubatenko
У меня была ситуация чуть проще.
Так как тебе нужно достать через связь, то возможно так сработает:
Client.objects.annotate(
   new_name=Case(
       When(product__brand__isnull=False, then=F("product__brand__name")),
       default=None,
       output_field=CharField()
   )
).annotate(
   brand_name=Coalesce(new_name, Value(""))
)

Или так:
Client.objects.annotate(
   brand_name=Coalesce(F("product__brand__name"), Value(""))
)

** поправил "Coalesce"
Огромнейшее спасибо!
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Oleg Shleiko
Огромнейшее спасибо!
получилось?
источник

A

Artem in Django [ru] #STAY HOME
А как я могу присвоить значение переменной Django view в JS
источник

S

Serj in Django [ru] #STAY HOME
Artem
А как я могу присвоить значение переменной Django view в JS
засунь его в какой-нибудь элемент на странице через data-атрибут
источник

S

Serj in Django [ru] #STAY HOME
ну и еще есть вариант - ajax запрос из js в джангу, чтобы получить данные, которые тебе нужны
источник

A

Artem in Django [ru] #STAY HOME
Serj
засунь его в какой-нибудь элемент на странице через data-атрибут
Типо как значение хайден поля может прокатить?
источник

S

Serj in Django [ru] #STAY HOME
Artem
Типо как значение хайден поля может прокатить?
может, но если ты только ради этого будешь создавать форму на странице, то лучше воспользоваться data атрибутами
https://developer.mozilla.org/ru/docs/Web/Guide/HTML/Using_data_attributes
источник

A

Artem in Django [ru] #STAY HOME
Serj
может, но если ты только ради этого будешь создавать форму на странице, то лучше воспользоваться data атрибутами
https://developer.mozilla.org/ru/docs/Web/Guide/HTML/Using_data_attributes
Спасибо
источник

НК

Никита Кадацкий in Django [ru] #STAY HOME
Всем привет, как можно отправить файл по эмейл без сохранения его на сервер?
источник

A

Andrey in Django [ru] #STAY HOME
В памяти держать
источник

НК

Никита Кадацкий in Django [ru] #STAY HOME
Andrey
В памяти держать
Окей, и как это сделать, сейчас читаю доки, не до конца понимаю
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Никита Кадацкий
Окей, и как это сделать, сейчас читаю доки, не до конца понимаю
я получал pdf файл в формате base64 (из интернета) и отправлял без сохранения. Но это через Sendgrid и с использованием либы:
encoded - это base64
attachments = []
for invoice, encoded in self.get_pdf_invoice():
   attachment = Attachment()
   attachment.file_content = FileContent(encoded)
   attachment.file_type = FileType('application/pdf')
   attachment.file_name = FileName(f'{invoice.number}.pdf')
   attachment.disposition = Disposition('attachment')
   attachments.append(attachment)
return attachments
источник

НК

Никита Кадацкий in Django [ru] #STAY HOME
Artem Gubatenko
я получал pdf файл в формате base64 (из интернета) и отправлял без сохранения. Но это через Sendgrid и с использованием либы:
encoded - это base64
attachments = []
for invoice, encoded in self.get_pdf_invoice():
   attachment = Attachment()
   attachment.file_content = FileContent(encoded)
   attachment.file_type = FileType('application/pdf')
   attachment.file_name = FileName(f'{invoice.number}.pdf')
   attachment.disposition = Disposition('attachment')
   attachments.append(attachment)
return attachments
Спасибо)
источник

А

Алексей in Django [ru] #STAY HOME
в документации эта функция есть, в чем причина?
# python manage.py reset structure
Unknown command: 'reset'. Did you mean test?
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
На букву r, вроде, кроме runserver ничего другого нет
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
источник