Size: a a a

Django [ru] #STAY HOME

2021 June 10

SI

Sleeping Insects in Django [ru] #STAY HOME
Господа, есть такой вопрос. Не могу понять, почему так происходит.
Запущено приложение на Django в контейнере, Postgres в другом контейнере, всё работает нормально, без ошибок.

Захожу в шел Django через команду:
docker-compose exec [django] python manage.py shell
Делаю там необходимые действия с объектами, ничего не меняется даже прямо в шеле. Вот пример:
user = User.objects.all().first()
user.first_name = 'new name'
user.save()
Собственно, тут же вызываю user.first_name не выходя из шела, имя осталось старым. Когда пишу такой метод в коде и запускаю из приложения, оно работает как положено.

Кто-то может объяснить такое поведение?
источник

ПИ

Павел Игин in Django [ru] #STAY HOME
А разве shell сохраняет?
источник

ib

imanuil beki in Django [ru] #STAY HOME
да shell сохраняет
источник

SI

Sleeping Insects in Django [ru] #STAY HOME
Когда без докера запускаю, сохраняет. Не хочет именно из докера. И ошибок никаких не выдаёт тоже.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
возможно проблема в разных окружениях или конфигах для подключения к базе
источник

ПИ

Павел Игин in Django [ru] #STAY HOME
Это может вылезти боком на релизе?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ну если веб приложение работает
то скорее всего нет
источник

SI

Sleeping Insects in Django [ru] #STAY HOME
На что бы ты подумал в первую очередь? Когда запускаю менедж-команды или тот же createsuperuser, всё проходит. Только shell не работает как положено.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
если остальные команды работают
источник

DT

Dan Tyan in Django [ru] #STAY HOME
то ничего не приходит в голову
источник

АТ

Алишер Тасанов... in Django [ru] #STAY HOME
Привет всем!
У меня возникает вот такая проблема. На мой эндпойнт отправляется запрос с типом данных form-data в котором image и body(текстовое значение).

image у меня необязательный параметр, но когда в запросе этот файл отсутствует возникает странная ошибка.

Есть вот такая строка кода в котором я записываю объект в реквест дата:
request.data["test"] = test

Когда в запросе присутсвует файл, он туда записывает нормально и запрос удачно обрабатывается, когда внутри нету файла(image) выводится ошибка:

AttributeError: This QueryDict instance is immutable


Если request data у меня immutable, то почему когда в запросе есть файл он записывает нормально, когда его нет крашится :/
источник

V

Vasily in Django [ru] #STAY HOME
отправляй всегда с файлам, если файл не нужен то подставь файл-заглушку пустой) ОСТОРОЖНО! костыль)
источник

АТ

Алишер Тасанов... in Django [ru] #STAY HOME
неее))
Просто я загуглил, в некоторых форумах пишут что это возможно из-за multipart/form-data.
Но в постмане у меня всегда такой контент тайп стоит. Или джанго если не видит файл думает что это не мультипарт?
источник

V

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

АТ

Алишер Тасанов... in Django [ru] #STAY HOME
тестанул, когда без мультипарт дажнго вовсе не понимает входящие данные)
415 Unsupported Media Type ошибка
источник

АТ

Алишер Тасанов... in Django [ru] #STAY HOME
я конечно могу по другому передать,   но хотелось бы понять почему такая путаница😅
источник

V

Vasily in Django [ru] #STAY HOME
а в джанге проверка входящих есть на images?
источник

V

Vasily in Django [ru] #STAY HOME
и image обязательное поле?
источник

АТ

Алишер Тасанов... in Django [ru] #STAY HOME
нет, необязательное поле
источник

АТ

Алишер Тасанов... in Django [ru] #STAY HOME
у меня он не ругает на это)
источник