Size: a a a

Django [ru] #STAY HOME

2020 March 28

MM

Maksym Mospanenko in Django [ru] #STAY HOME
brestows
Ребят, подскажите мне такой момент. Вот есть у меня приложение на django, оно работает и выполняет то что мне надо. Но сейчас возникла необходимость делать  записи в сторонней БД которая размещенная в той же СУБД что и база моего приложения. Можно ли как-то использовать джанговский ORM для работы с этой сторонней базой ?
Я так понимаю что можно описать параметры подключения ко второй БД в settings,  потом по идее можно сгенерировать модели для этой сторонней БД и уже их использовать, но вот не понимаю с чего начать. Спасибо за ответ.
наверное с доки как описать сеттингс с несколькими бд бекендами, дальше описать конфиг и использование в нужных местах
источник

b

brestows in Django [ru] #STAY HOME
Ivan
У меня ImageField, в темплейте вывожу {{ product.image.url }}, в файловой системе файл есть, в html урл в таком виде /media/products/2020/03/28/448448.png. Но картинка не отдается.
а переменные MEDIA_URL MEDIA_ROOT прописаны ?
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Ivan
У меня ImageField, в темплейте вывожу {{ product.image.url }}, в файловой системе файл есть, в html урл в таком виде /media/products/2020/03/28/448448.png. Но картинка не отдается.
источник

b

brestows in Django [ru] #STAY HOME
Maksym Mospanenko
наверное с доки как описать сеттингс с несколькими бд бекендами, дальше описать конфиг и использование в нужных местах
это я описал, тут больше вопрос не как сделать, а как это теоретически грамотно организовать
источник

I

Ivan in Django [ru] #STAY HOME
Ну вот да, +static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT),  хотел на конфигах разрулить вот как раз whitenoise это делает но для статики только.
источник

MM

Maksym Mospanenko in Django [ru] #STAY HOME
brestows
это я описал, тут больше вопрос не как сделать, а как это теоретически грамотно организовать
а, как уже использовать несколько бекендов... думаю зависит от бизнес логики, писать это все дело мне кажется лучше где-то на слоях сервисов (где бизнес логика) и репозитория (менеджеры в джанго), я точно не подскажу как правильно в конкретной ситуации

"но вот не понимаю с чего начать." я подумал что это вопрос был =)
источник

b

brestows in Django [ru] #STAY HOME
Maksym Mospanenko
а, как уже использовать несколько бекендов... думаю зависит от бизнес логики, писать это все дело мне кажется лучше где-то на слоях сервисов (где бизнес логика) и репозитория (менеджеры в джанго), я точно не подскажу как правильно в конкретной ситуации

"но вот не понимаю с чего начать." я подумал что это вопрос был =)
Спасибо. буду пробовать как  нить это закостылить )
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Ivan
Ну вот да, +static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT),  хотел на конфигах разрулить вот как раз whitenoise это делает но для статики только.
Джанга может сервить статику и медию без вайтнойза (но это рекомендуется только для дев сервера). Если у тебя что-то не отдается, смотри какие ошибки, что не так с твоей конфигурацией. Вайтнойз не нужен на локальной машине
источник

I

Ivan in Django [ru] #STAY HOME
Rust Saiargaliev
Джанга может сервить статику и медию без вайтнойза (но это рекомендуется только для дев сервера). Если у тебя что-то не отдается, смотри какие ошибки, что не так с твоей конфигурацией. Вайтнойз не нужен на локальной машине
Статику да, но медию даже на локальной не отдает, если не дописать в urls. Вот и думал может че на подобии вайтнойз есть для такого случая. Буду пока в урлс дописывать, спасяу.
источник

Е~

Е ~ in Django [ru] #STAY HOME
Maksym Mospanenko
сериализатор - для сериализации структуры в примитивы, возможно какая-то очистка, но не бизнес логика. Также бизнес логике не место в контроллере (вью в джанго, вьюсет как абстракция и тд). Это что касается ответственностей. Про PUT вместо PATCH не совсм понял
Да, про PUT неправильно выразился. Обновляются все поля в том числе и участники ивента. Не совсем понял то, что если ни во вьюхе, ни в сериализаторе, этому не место, то где тогда вызывать функцию отправки уведомлений.
Цепочка примерно такая EventViewSet.update -> serializer.update -> add_event_participant -> *более мелкая логика*. Куда здесь положить send_participant_added_notification() ?
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Ivan
Статику да, но медию даже на локальной не отдает, если не дописать в urls. Вот и думал может че на подобии вайтнойз есть для такого случая. Буду пока в урлс дописывать, спасяу.
Тебе дают способ из коробки (2-3 строчки), но ты пытаешься найти какой-то внешний пакет который делает (примерно) то же самое?
Не совсем понимаю, зачем это нужно. Другое дело, если тебе нужно грузить файлики на s3 или нечто такое, тогда да, в дело вступят какие-нибудь django-storages
источник

I

Ivan in Django [ru] #STAY HOME
Rust Saiargaliev
Тебе дают способ из коробки (2-3 строчки), но ты пытаешься найти какой-то внешний пакет который делает (примерно) то же самое?
Не совсем понимаю, зачем это нужно. Другое дело, если тебе нужно грузить файлики на s3 или нечто такое, тогда да, в дело вступят какие-нибудь django-storages
Ну чтобы сделать дев конфиг, и потом не парится с удалением этого на проде
источник

А

Антоха in Django [ru] #STAY HOME
curl -X GET http://127.0.0.1:8000/api/v1/user/ -H "Authorization: Token a49979d7ebea304552fe761f0a72aaf15adf8051"

Это какой вид авторизации? Не могу тоже самое сделать в postman
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Ivan
Ну чтобы сделать дев конфиг, и потом не парится с удалением этого на проде
Ну это же ты в urls.py одним ифом добавишь медию

В случае отдельного внешнего решения тебе придется сделать дев конфиг без этого пакета и его конфигурации
источник

I

Ivan in Django [ru] #STAY HOME
Rust Saiargaliev
Ну это же ты в urls.py одним ифом добавишь медию

В случае отдельного внешнего решения тебе придется сделать дев конфиг без этого пакета и его конфигурации
Ну тут да, конфиг для дева не очень нужен, но когда он есть уже и там не только этот пакет, то я бы в нем это предпочел сделать
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
Антоха
curl -X GET http://127.0.0.1:8000/api/v1/user/ -H "Authorization: Token a49979d7ebea304552fe761f0a72aaf15adf8051"

Это какой вид авторизации? Не могу тоже самое сделать в postman
Во вкладке headers передаёшь под ключом Authorization свой токен вида: Token <token>
источник

А

Антоха in Django [ru] #STAY HOME
Адилет Асанкожоев
Во вкладке headers передаёшь под ключом Authorization свой токен вида: Token <token>
Спасибо)
источник

p

pavel in Django [ru] #STAY HOME
а есть альтернатива django-money?
источник

in Django [ru] #STAY HOME
Правильно ли я понимаю, что чтобы юзать не дефолтный "db" хост к postgres бд (postgres image), а к примеру "database" или подобный - нужно в докере контейнеру с postgres опрокинуть POSTGRES_HOST переменную в environment?
источник

ㅤㅤㅤㅤ in Django [ru] #STAY HOME
Эммм, ребят создал модель с параметром unique=True но база данных пополняется одинковыми параметрами. В чём ошибка?
источник