Size: a a a

Django [ru] #STAY HOME

2019 January 28

ДМ

Диего Мустафа in Django [ru] #STAY HOME
Одна модель наследуется от другой по ForeignKey и при создании обьекта наследуемой модели на клиенте все равно приходится выбирать, к какой модели должен принадлежать создаваемый обьект. Не знаю, как проще обьяснить..

Подскажите, как сделать, чтобы не надо было выбирать. ну типа с какой страницы перехожу, для той модели и создавать обьект. фух
источник

ДМ

Диего Мустафа in Django [ru] #STAY HOME
источник

MS

Maxim Stikharev in Django [ru] #STAY HOME
в kwargs прокинь initial
источник

MS

Maxim Stikharev in Django [ru] #STAY HOME
в get_form_kwargs потом в __init__ уже забери в self аргумент и подставь в поле после super'a
источник

A

Alexander in Django [ru] #STAY HOME
хай. есть таска: надо на загрузку видео его конвертить, затем заливать  в хранилище и прикреплять к создаваемой записи в бд.
вариант 1: создаем отдельный сервис, общение происходит через очередь сообщений. на загрузку видео - кидаем в этот сервис таску, как сконвертируется, он кидает сообщение обратно в джанго сервис и создаем запись с видео
вариант 2: все синхронно. приходит видео - кодируем, создаем запись, заливаем, и только потом отвечаем клиенту.

кто с опытом - что выбрать, или какие альтернативы еще можно придумать?
источник

SM

Sergey Matveyev in Django [ru] #STAY HOME
Всем привет.
Есть поле для сохранения файлов в модели, объявлено вот так - xl_stratification = models.FileField('Excel файл стратифкации', upload_to='research_toolkit/stratifications', blank=True, null=True)
В скрипт открываю файл и пытаюсь его сохранить вот так:
from django.core.files import File
with open(wb, 'w') as f:
   wrapped_file = File(f)
   survey['db_row'].xl_stratification = wrapped_file
   survey['db_row'].save()
wb - полный путь файла (правильный, проверил), survey['db_row'] - ключ словаря в котором хранится экземпляр БД в который я хочу сохранить файл.
Правильный путь например вот такой C:\SM\Projects\CatiGuardian\files\research_toolkit\stratifications\Mfw19b quotation.xlsx. Но возвращает ошибку:
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:\\SM\\Projects\\CatiGuardian\\files\\research_toolkit\\stratifications\\C:'
Такое ощущение что он два раза пытается подставить этот путь. в чём может быть проблема?
P.S. Django 2.1, работает на windows 10
источник

T

Troubleshoot in Django [ru] #STAY HOME
Alexander
хай. есть таска: надо на загрузку видео его конвертить, затем заливать  в хранилище и прикреплять к создаваемой записи в бд.
вариант 1: создаем отдельный сервис, общение происходит через очередь сообщений. на загрузку видео - кидаем в этот сервис таску, как сконвертируется, он кидает сообщение обратно в джанго сервис и создаем запись с видео
вариант 2: все синхронно. приходит видео - кодируем, создаем запись, заливаем, и только потом отвечаем клиенту.

кто с опытом - что выбрать, или какие альтернативы еще можно придумать?
Постсейв в таску?
источник

A

Alexander in Django [ru] #STAY HOME
не, там надо как минимум ffmpeg через subprocess
источник

A

Alexander in Django [ru] #STAY HOME
может команду джанго админ вызывать
источник

A

Alexander in Django [ru] #STAY HOME
и конвертация до какого-то сохранения в бд
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Alexander
хай. есть таска: надо на загрузку видео его конвертить, затем заливать  в хранилище и прикреплять к создаваемой записи в бд.
вариант 1: создаем отдельный сервис, общение происходит через очередь сообщений. на загрузку видео - кидаем в этот сервис таску, как сконвертируется, он кидает сообщение обратно в джанго сервис и создаем запись с видео
вариант 2: все синхронно. приходит видео - кодируем, создаем запись, заливаем, и только потом отвечаем клиенту.

кто с опытом - что выбрать, или какие альтернативы еще можно придумать?
Делали просто селери таску, которая вызывает ffmpeg через сабпроцесс, в целом, все рутинно (может и не очень красиво)
источник

A

Alexander in Django [ru] #STAY HOME
а селери в том же сервисе или отдельно?
источник

A

Alexander in Django [ru] #STAY HOME
имею в виду случай с использованием докера
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Не знаю что там с докером, пять лет назад без него обошлись как-то :) На том же серваке, обычные селери воркеры
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Собственно, с докером та же картина, в целом. Как селери там крутите, так и будет крутиться
источник

A

Alexander in Django [ru] #STAY HOME
понял. мы пока без селери, не хотелось подключать. но очевидно, что так правильней
источник

AD

Alex Dem in Django [ru] #STAY HOME
Alexander
хай. есть таска: надо на загрузку видео его конвертить, затем заливать  в хранилище и прикреплять к создаваемой записи в бд.
вариант 1: создаем отдельный сервис, общение происходит через очередь сообщений. на загрузку видео - кидаем в этот сервис таску, как сконвертируется, он кидает сообщение обратно в джанго сервис и создаем запись с видео
вариант 2: все синхронно. приходит видео - кодируем, создаем запись, заливаем, и только потом отвечаем клиенту.

кто с опытом - что выбрать, или какие альтернативы еще можно придумать?
ffmpeg в асинхроне обернутый в чем удобно
редис(или любой другое nosql-хранилище) можно кинуть в качестве динамического хранилища-буфера и брокера между менеджером БД и ffmpeg для передачи любых метаданных и статусов

имхо
источник

J

Je in Django [ru] #STAY HOME
селери лучше вообще не крутить, имхо, много с ним проблем
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Вместо селери читай любая другая очередь (драматик или rq)
источник

RS

Rust Saiargaliev in Django [ru] #STAY HOME
Как угодно, главное не синхронно
источник