Size: a a a

Django [ru] #STAY HOME

2019 November 06

АА

Арсений Абрамян in Django [ru] #STAY HOME
Rust Saiargaliev
Лучше ты расскажи нам свой контекст и зачем тебе делать такую плохую штуку.
А ребята в чате тебе постараются подсказать как это сделать правильно
У меня почтовая рассылка по post_save стоит
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Арсений Абрамян
У меня почтовая рассылка по post_save стоит
Пожалуйста, подробнее давай. Зачем тебе на почтовой рассылке request?
источник

МС

Михаил Александрович Сибирёв in Django [ru] #STAY HOME
Арсений Абрамян
Ребята подскажите пожалуйста как в signals затащить request?
Во вьюхе добудь из реквеста конкретно, что тебе нужно, сложи в словарь и прицепи к инстансу
В сигнале проверяй, есть ли такой атрибут у объекта, и если да, то далее то, что хотел делать
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Rust Saiargaliev
Пожалуйста, подробнее давай. Зачем тебе на почтовой рассылке request?
В письме должна быть ссылка на его лк, чтобы он мог перейти по ней для отслеживания заказа
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Арсений Абрамян
В письме должна быть ссылка на его лк, чтобы он мог перейти по ней для отслеживания заказа
Так, смотри, давай для начала узнаем зачем тебе сигналы здесь?
Ты же знаешь в какой конкретно момент тебе нужно отправить рассылку? Типа когда ты сохраняешь там или создаешь новый объект, да? Почему бы не прицепиться к save() методу и не запустить таск с отправкой рассылки оттуда? В таком случае ты должен прям сразу знать все нужные тебе данные

Либо если эта рассылка идет прямиком из какой-то вьюшки - еще лучше. Ты в ней знаешь все данные реквеста, отправляй таск с емейлом прямо оттуда

Сигналы усложняют код и должны использоваться только в редких и конкретных случаях. По тому что я понял, сигнал в твоем случае вообще не нужен
источник

AP

Andrey Pronin in Django [ru] #STAY HOME
Подскажите, как лучше сделать, елси нужно форму обратной связи на всех страницах сайта разместить? а
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Rust Saiargaliev
Так, смотри, давай для начала узнаем зачем тебе сигналы здесь?
Ты же знаешь в какой конкретно момент тебе нужно отправить рассылку? Типа когда ты сохраняешь там или создаешь новый объект, да? Почему бы не прицепиться к save() методу и не запустить таск с отправкой рассылки оттуда? В таком случае ты должен прям сразу знать все нужные тебе данные

Либо если эта рассылка идет прямиком из какой-то вьюшки - еще лучше. Ты в ней знаешь все данные реквеста, отправляй таск с емейлом прямо оттуда

Сигналы усложняют код и должны использоваться только в редких и конкретных случаях. По тому что я понял, сигнал в твоем случае вообще не нужен
Не подойдёт у меня объект может быть уже создана, я ориентируюсь на поле подтверждён.
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Арсений Абрамян
Не подойдёт у меня объект может быть уже создана, я ориентируюсь на поле подтверждён.
Типа изменилось ли поле?
Ну проверяй что поле изменилось в сейв методе
источник

МС

Михаил Александрович Сибирёв in Django [ru] #STAY HOME
Rust Saiargaliev
Так, смотри, давай для начала узнаем зачем тебе сигналы здесь?
Ты же знаешь в какой конкретно момент тебе нужно отправить рассылку? Типа когда ты сохраняешь там или создаешь новый объект, да? Почему бы не прицепиться к save() методу и не запустить таск с отправкой рассылки оттуда? В таком случае ты должен прям сразу знать все нужные тебе данные

Либо если эта рассылка идет прямиком из какой-то вьюшки - еще лучше. Ты в ней знаешь все данные реквеста, отправляй таск с емейлом прямо оттуда

Сигналы усложняют код и должны использоваться только в редких и конкретных случаях. По тому что я понял, сигнал в твоем случае вообще не нужен
А в save() у него тоже нет реквеста
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Михаил Александрович Сибирёв
Во вьюхе добудь из реквеста конкретно, что тебе нужно, сложи в словарь и прицепи к инстансу
В сигнале проверяй, есть ли такой атрибут у объекта, и если да, то далее то, что хотел делать
А пример можешь какой нить подкинуть а то я не пойму синтаксис как подпихнуть в instance
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Михаил Александрович Сибирёв
А в save() у него тоже нет реквеста
Я все равно не понимаю что конкретно в реквесте есть чего нет, скажем, в юзер модели. И если этого чего-то нет, почему это не должно сохраняться в этой модели
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Михаил Александрович Сибирёв
А в save() у него тоже нет реквеста
Я так понял он имеет ввиду после сохранения во Вью()
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Короче, мы опять не видим полной картины. Пожалуйста, задавая вопросы описывайте что у вас там конкретно происходит и где. Экстрасенсов у нас нет
источник

МС

Михаил Александрович Сибирёв in Django [ru] #STAY HOME
Арсений Абрамян
А пример можешь какой нить подкинуть а то я не пойму синтаксис как подпихнуть в instance
Не удобно, с телефона сейчас
Ориентируйся на то, что любому объекту в рантайме можно навесить атрибут со значением, типа:
- есть объект a;
- в нужный момент делаем a.my_attr = 42
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Михаил Александрович Сибирёв
Не удобно, с телефона сейчас
Ориентируйся на то, что любому объекту в рантайме можно навесить атрибут со значением, типа:
- есть объект a;
- в нужный момент делаем a.my_attr = 42
Теперь представь что в момент когда ты навесил свой атрибут у нас происходит деплой или рестарт приложения. Атрибут сотрется, ибо он нигде кроме как в памяти не сохранен. Это не очень хорошо
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Я нашел одно решению  from django.contrib.sites.models import Site
Site.objects.get_current().domain
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Арсений Абрамян
Я нашел одно решению  from django.contrib.sites.models import Site
Site.objects.get_current().domain
Господи, тебе всего лишь домен надо было вытащить?
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Михаил Александрович Сибирёв
Не удобно, с телефона сейчас
Ориентируйся на то, что любому объекту в рантайме можно навесить атрибут со значением, типа:
- есть объект a;
- в нужный момент делаем a.my_attr = 42
Понял, спс попробую
источник

АА

Арсений Абрамян in Django [ru] #STAY HOME
Rust Saiargaliev
Господи, тебе всего лишь домен надо было вытащить?
Такое себе решение поскольку протокол у меня сейчас по http а будет https,
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Так, давай прямо четко напиши что ты пытаешься сделать. Тебе нужна полная ссылка на твой проект или что?
источник