
Dmitry
15.04.2018
16:06:52
Нет, у меня немного другая ситуация. Приличных размеров приложение rails. Мне нужно из него дёргать таски selery. Думаю, что самый convient путь это что-то пушить в rabbitmq, а дальше selery подхватит и выполнит.
Реален такой сценарий?
Наверное будет проще просто слушать редис из питона

Dan
15.04.2018
16:09:38
Я немного не понял как тут задействована джанга

Dmitry
15.04.2018
16:10:29
джангисты не работают с celery, rabbitmq и redis? ?

Google

Dan
15.04.2018
16:10:47
Джангисты работают
Просто учитывая тематику чата предлагаются решения исходя из того что таки используется джанга

amureki
15.04.2018
16:41:16
Если не ошибаюсь, такое возможно, но не знаю деталей, стоит погуглить

Alex
15.04.2018
16:49:11
Может кто объяснить как запрос может пролетать 1 path и падать во второй?
path('application?limit=<int:limit>&page=<int:page>' => path('application'
непосредственно сам запрос:
http://127.0.0.1:8002/application?limit=2&page=1

Dmytro
15.04.2018
16:50:37
Параметры гет-запроса не указываются в паттернах урлов.
Указывайте корень и ветку, например, api/v1/users/dmytro.
Я все переданные гет-параметры в request.GET ловите.

Alex
15.04.2018
16:51:43
понял, я уже обратил внимание что в доке по джанге как-то нет параметров в path
спасибо

Set
15.04.2018
17:23:04
SmallIntegerField можно ли задать max_length?

Senpos
15.04.2018
17:24:38
Если нужно ограничить максимальное число для Integer - смотри сюда
https://docs.djangoproject.com/en/2.0/ref/validators/#maxvaluevalidator

Google

Crippling
15.04.2018
17:28:01
в двух словах, зачем нужен django rest framework и можно ли обойтись без него если делаешь какой-то интерфейс?

Ahmed
15.04.2018
17:34:41
Гайс, кто-нибудь клал csv файл в модель где есть поле File?)

Alex
15.04.2018
17:34:45

Ahmed
15.04.2018
17:35:49

Dmitry
15.04.2018
18:13:56

amureki
15.04.2018
18:22:41

malcev
15.04.2018
19:20:06
хочу проверить переменные на None

Oleksandr
15.04.2018
19:31:27
is None

Ahmed
15.04.2018
19:35:13
Ребята, в поле FileField в каком формате можно класть данные? Пытаюсь положить csv файл, выдает
AttributeError: '_csv.writer' object has no attribute '_committed'

amureki
15.04.2018
19:41:35

Ahmed
15.04.2018
19:42:38

Senpos
15.04.2018
19:43:51

amureki
15.04.2018
19:44:49
https://hastebin.com/afunosefap.py
Это неправильно, writer - это не файл
Посмотри пример: https://stackoverflow.com/questions/3501588/how-to-assign-a-local-file-to-the-filefield-in-django

Ahmed
15.04.2018
19:45:08

amureki
15.04.2018
19:55:25

Ahmed
15.04.2018
20:04:30
забыл указать поле куда буду сохранять
Что ему не нравится?
https://hastebin.com/evasapuheb.py
Ведь with закрывает же файл не?
ValueError: I/O operation on closed file.

Max
15.04.2018
20:08:31
ну так пишет же

Google

Max
15.04.2018
20:08:38
ЗАКРЫТ

Dmitriy
15.04.2018
20:08:41
Ну у тебя после with контекст поменялся, а ты обращаешься к f.

Max
15.04.2018
20:08:44
а ты с ним что-то делать пытаешься

Ahmed
15.04.2018
20:09:01
шет)

Max
15.04.2018
20:09:30
а тебе сам файл нужен то?
StringIO какой не подойдет?
если сразу отдаешь его

Ahmed
15.04.2018
20:10:03

Max
15.04.2018
20:10:21
ок)

Ahmed
15.04.2018
20:12:10
Блэд и что теперь делать)

amureki
15.04.2018
20:14:07
Блэд и что теперь делать)
Ты
1. открыл файл
2. пописал туда всякого
3. закрыл файл
4. пытаешь сохранить его в джангу, джанга просит открытый файл
Как насчет последний пункт передвинуть чуть повыше, пока файл открыт?

Ahmed
15.04.2018
20:14:36
4 пункт разве это разумно?
Как насчет последний пункт передвинуть чуть повыше, пока файл открыт?
Я вроде так сделал
with open(file_name, 'w') as f:
writer = csv.writer(f)
writer.writerow(['user', 'ticket', 'seconds'])
users = UserTicket.objects.filter().values_list('user', 'ticket', 'seconds')
for user in users:
writer.writerow(user)
report_data = ReportData(server='Test')
report_data.file.save('new', File(f))

Max
15.04.2018
20:15:23

amureki
15.04.2018
20:15:48
Ну да

Max
15.04.2018
20:16:26

Ahmed
15.04.2018
20:19:44
добавь f.seek(0) перед чтением
today = date.today
file_name = '{}-{}.csv'.format('test', today)
with open(file_name, 'w') as f:
writer = csv.writer(f)
writer.writerow(['user', 'ticket', 'seconds'])
users = UserTicket.objects.filter().values_list('user', 'ticket', 'seconds')
for user in users:
writer.writerow(user)
f.seek(0)
report_data = ReportData(server='Test')
report_data.file.save('new', File(f))
Выдает такое io.UnsupportedOperation: not readable

Max
15.04.2018
20:20:31
да короче закрой его и открой заново)

Dmitriy
15.04.2018
20:22:36
Ты ведь дескриптор открывал на запись, и в том же блоке ещё и читаешь?

Max
15.04.2018
20:23:36
точно

Google

Max
15.04.2018
20:23:43
rw

Ahmed
15.04.2018
20:24:42
точно
Так?)
today = date.today
file_name = '{}-{}.csv'.format('test', today)
with open(file_name, 'rw') as f:
writer = csv.writer(f)
writer.writerow(['user', 'ticket', 'seconds'])
users = UserTicket.objects.filter().values_list('user', 'ticket', 'seconds')
for user in users:
writer.writerow(user)
report_data = ReportData(server='Test')
report_data.file.save('new', File(f))
блэд что-то разные варианты не работают

Max
15.04.2018
20:26:51
seek где?

Dmitriy
15.04.2018
20:27:00
Seek верни на место, да.

Alex
15.04.2018
20:27:37
f'test-{today}.csv'

Ahmed
15.04.2018
20:27:42
Не помогает)
with open(file_name, 'rw') as f:
ValueError: must have exactly one of create/read/write/append mode

Dmitriy
15.04.2018
20:28:50
r+ попробуй вместо rw.

Ahmed
15.04.2018
20:29:39

Алексей
15.04.2018
20:29:50
Можео еще в rwax открыть попробовать
XD

Dmitriy
15.04.2018
20:30:04
r+ это и на чтение и на запись.

Ahmed
15.04.2018
20:30:36
Не то не то не работает)

Dmitriy
15.04.2018
20:31:38
Тогда придётся один with для записи, а после него второй with для чтения.

Ahmed
15.04.2018
20:34:41
Тогда придётся один with для записи, а после него второй with для чтения.
И такой вариант не работает
f = open(file_name, 'w')
writer = csv.writer(f)
writer.writerow(['user', 'ticket', 'seconds'])
users = UserTicket.objects.filter().values_list('user', 'ticket', 'seconds')
for user in users:
writer.writerow(user)
report_data = ReportData(server='Test')
report_data.file.save('new', File(f))
f.close()

Dmitriy
15.04.2018
20:37:05

Ahmed
15.04.2018
20:41:38
а просто txt

Dmitriy
15.04.2018
20:42:33
В смысле? А до этого в каком был?

Ahmed
15.04.2018
20:43:22

Google

Dmitriy
15.04.2018
20:43:46
Ты ведь не менял логику создания этого файла и записи в него?

Ahmed
15.04.2018
20:49:35

Dmitriy
15.04.2018
20:52:21
Это-то понятно.
В каком смысле получившийся файл текстовый? CSV это же текстовый формат. Или у тебя файл с расширением .txt?

Ahmed
15.04.2018
20:54:03

Dmitriy
15.04.2018
20:55:31
Так. А в сам файл данные пишутся?

Ahmed
15.04.2018
20:55:50

Dmitriy
15.04.2018
20:56:00
Тогда в чём проблема?

Ahmed
15.04.2018
20:57:23
не закоммиченный файл создается первым with
а в папке media это уже второй with

Dmitriy
15.04.2018
20:59:22
Понял. Смотри что происходит внутри
report_data.file.save()
То есть тебе надо и в базу записать и в файл положить в media?

Ahmed
15.04.2018
21:03:20
Будет API где можно будет скачивать эти отчеты
я и к этому стремлюсь

Dmitriy
15.04.2018
21:04:19
В любом случае тебе нужно посмотреть как устроен метод save(), т.к. вся суть в нём.

Ahmed
15.04.2018
21:05:38

Dmitriy
15.04.2018
21:10:16
На худой конец можешь просто самостоятельно скопировать *.csv куда захочешь.