Size: a a a

Django [ru] #STAY HOME

2019 September 24

♿️➡️➡️➡️ in Django [ru] #STAY HOME
так, заработало. я зыбал перезалить файл
источник

♿️➡️➡️➡️ in Django [ru] #STAY HOME
правда я не понял что сделал чтобы все это заработало, ну как обычно
источник

♿️➡️➡️➡️ in Django [ru] #STAY HOME
а понял, он теперь создал папку photos в папке photos
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Ребят, как через test.py отправить post запрос с изображением, поднял сервер, все ок, а вот через тесты ломается, так надо? Или я чего-то не знаю? Просто не видит мое изображение в request.FILES
источник

A

Andrey in Django [ru] #STAY HOME
Anvar Khamidov
Ребят, как через test.py отправить post запрос с изображением, поднял сервер, все ок, а вот через тесты ломается, так надо? Или я чего-то не знаю? Просто не видит мое изображение в request.FILES
А чем обычные запросы отправляете?
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Andrey
А чем обычные запросы отправляете?
Requests
источник

A

Andrey in Django [ru] #STAY HOME
Супер, покажи код который отправляет файл
источник

A

Andrey in Django [ru] #STAY HOME
Попробуй
>>> url = 'https://httpbin.org/post'
>>> files =
{'file': open('report.xls', 'rb')}

>>> r = requests.post
(url, files=files)
>>> r.text
источник

A

Andrey in Django [ru] #STAY HOME
Запрос post, Файлы шлются через атрибут files, а не data, файл читается бинарно
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Andrey
Запрос post, Файлы шлются через атрибут files, а не data, файл читается бинарно
Да, так и делаю
источник

A

Andrey in Django [ru] #STAY HOME
Anvar Khamidov
Да, так и делаю
Покажи код
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Сейчас, минут через 10 к ноуту подойду
источник

A

Andrey in Django [ru] #STAY HOME
И покажи что приходит на сервер
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Ок
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Andrey
И покажи что приходит на сервер
tests.py
    def test_image(self):
       file = open('/home/khanze/Pictures/Wallpapers/test_image.jpg', mode="rb")
       url = reverse('photo')
       data = {"place": "test_1"}
       response = self.client.post(url, files={"img": file}, format='json')
       self.assertEqual(response.status_code, status.HTTP_200_OK)
       self.assertEqual(Image.objects.get(id=1).place(), 'test_1')

Тут пусто в MultiValueDict


и через requests
request = post('http://127.0.0.1:8000/service/photo/', files={'img': file}, data={'place': 'hz'})

request.FILES видит изображение
источник

SB

So Byte in Django [ru] #STAY HOME
У меня есть сервен nginx - gunicorn - django.

Гуникорн создает 3 воркера (синхронные).

В итоге когда посылается POST запрос, то создается две одинаковые записи (в логике во вьюхе в джанго прописана проверка на дубликаты, в БД нет).

Вопрос: Как этого избежать?
источник

i

ilya in Django [ru] #STAY HOME
So Byte
У меня есть сервен nginx - gunicorn - django.

Гуникорн создает 3 воркера (синхронные).

В итоге когда посылается POST запрос, то создается две одинаковые записи (в логике во вьюхе в джанго прописана проверка на дубликаты, в БД нет).

Вопрос: Как этого избежать?
использовать атомарные транзакции
источник

RP

Ruslan Popov in Django [ru] #STAY HOME
Ruslan Popov
Неужели никто не сталкивался?
источник

SB

So Byte in Django [ru] #STAY HOME
ilya
использовать атомарные транзакции
имеете ввиду атомные?
источник

i

ilya in Django [ru] #STAY HOME
So Byte
имеете ввиду атомные?
ядерные )
источник