Size: a a a

Django [ru] #STAY HOME

2019 October 22

A

Aquinary in Django [ru] #STAY HOME
Андрей Чумакин
Я не спец в джанго, но я бы посмотрел в сторону кастомизации SQL кода который генерирует Django. Вроде такое есть.
Ну и добавил бы при миграции удаление таблички да и всё.
Это странно, если это не получится сделать дефолтными средствам и нужно лезть куда-то в дебри. Удаление таблицы в бд - это очень редкое событие?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Aquinary
Иногда бывает так, что migrate начинает сыпать ошибки, если меняю типы полей и т.д. и это проходит, если пересоздать всю БД
Однако... Как можно пересоздать только отдельную удалённую таблицу?
https://techstream.org/Bits/Recover-dropped-table-in-Django
Не работает
смотри какие ошибки
источник

DT

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

АЧ

Андрей Чумакин in Django [ru] #STAY HOME
Aquinary
Это странно, если это не получится сделать дефолтными средствам и нужно лезть куда-то в дебри. Удаление таблицы в бд - это очень редкое событие?
через manage.py можно посмотреть, подготовленный sql код, для этого есть команда. sqlmigrate - выведет подготовленный код.
источник

АЧ

Андрей Чумакин in Django [ru] #STAY HOME
Dan Tyan
скорее всего ему не нравится что ты добавляешь поле  которое не может быть пустым
но ты ничего не задаешь по умолчанию
при пересоздании всей то бд, типа всё ок. Я бы больше смотрел в сторону не возможности конвертации старых данных в столбце в другой тип.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Андрей Чумакин
при пересоздании всей то бд, типа всё ок. Я бы больше смотрел в сторону не возможности конвертации старых данных в столбце в другой тип.
при создании таблицы нет записей
соответственно нет проблемы
источник

АЧ

Андрей Чумакин in Django [ru] #STAY HOME
Т.е. при попытке сделать Alter table column, и вылазит ошибка.
источник

АЧ

Андрей Чумакин in Django [ru] #STAY HOME
Dan Tyan
при создании таблицы нет записей
соответственно нет проблемы
+
источник

A

Aquinary in Django [ru] #STAY HOME
Dan Tyan
скорее всего ему не нравится что ты добавляешь поле  которое не может быть пустым
но ты ничего не задаешь по умолчанию
https://dpaste.de/bBK5
Нет, там всё есть - budget = models.DecimalField(max_digits=1024, decimal_places=2, default=0) например
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Aquinary
https://dpaste.de/bBK5
Нет, там всё есть - budget = models.DecimalField(max_digits=1024, decimal_places=2, default=0) например
и какая ошибка при миграции ?
источник

A

Aquinary in Django [ru] #STAY HOME
Там по ссылке)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ммм
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Dan Tyan
и какая ошибка при миграции ?
у тебя сейчас есть эта ошибка ?
источник

АЧ

Андрей Чумакин in Django [ru] #STAY HOME
Aquinary
https://dpaste.de/bBK5
Нет, там всё есть - budget = models.DecimalField(max_digits=1024, decimal_places=2, default=0) например
а предыдущий тип столбца какой был?
источник

АЧ

Андрей Чумакин in Django [ru] #STAY HOME
Aquinary
https://dpaste.de/bBK5
Нет, там всё есть - budget = models.DecimalField(max_digits=1024, decimal_places=2, default=0) например
dpaste не хочет открываться
источник

N

Nire in Django [ru] #STAY HOME
https://dpaste.de/WrdH можете помочь, почему не проходит проверка на permission?
источник

A

Aquinary in Django [ru] #STAY HOME
Dan Tyan
у тебя сейчас есть эта ошибка ?
После пересоздания БД - нет, ошибки нет
Всё было так
Сначала был тип TextField (так как планируется хранить числа очень большие - 200 и более знаков, а SQLite в большие вроде как не умеет). А вот PostgreSQL умеет.
Далее я сменил тип на DecimalField с параметрами max_digits=3, decimal_places=2 - оно запустилось.
Потом (перепутав), указал параметры max_digits=2, decimal_places=100, на что получил ошибку, что одно не может быть больше другого.
Ну и в конце указал параметры max_digits=1024, decimal_places=2, что и дало ошибку, полученную по ссылке
Удалил таблицу, удалил папку миграций, —fake, и проч. - ноль результата, таблица не пересоздаётся
Создал новую базу в pgadmin, ошибка того, что должно быть 1-1000 в max_digits, поправил
И вот теперь оно отработало как надо
источник

N

Nire in Django [ru] #STAY HOME
Так, dpaste упал?
источник

A

Aquinary in Django [ru] #STAY HOME
Nire
https://dpaste.de/WrdH можете помочь, почему не проходит проверка на permission?
Доступен только через прокси и подобные штуки
источник

N

Nire in Django [ru] #STAY HOME
class IsBuisnessMan(permissions.BasePermission):
   def has_object_permission(self, request, view, obj):
       user = request.user
       x = Profile.objects.filter(user = user).only('role_id')
       print(x)
       return x == 2

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