Size: a a a

Django [ru] #STAY HOME

2020 June 27

DB

Dima Boger in Django [ru] #STAY HOME
Кусатель Забочок
Коллеги, здравствуйте!
Подскажите, пожалуйста, у меня в модели есть поле
   dCreated = models.DateTimeField(auto_now_add=True)
когда я делаю миграцию, Джанго от меня чегото хочет. Подскажите чего?

You are trying to add the field 'dCreated' with 'auto_now_add=True' to protokol without a default; the database needs something to populate existing rows.

1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option: 1
Please enter the default value now, as valid Python
You can accept the default 'timezone.now' by pressing 'Enter' or you can provide another value.
The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now
Type 'exit' to exit this prompt
[default: timezone.now] >>>
Джанго не знает что проставить для уже существующих инстансов в базе
источник

DB

Dima Boger in Django [ru] #STAY HOME
Ты можешь туда написать timezone.now и он всем инстансам проставит в это поле текущее время (время применения миграции)
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
Dima Boger
Ты можешь туда написать timezone.now и он всем инстансам проставит в это поле текущее время (время применения миграции)
[default: timezone.now] >>> timezone.now
You are trying to add a non-nullable field 'nF1' to protokol without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
Select an option:
источник

DB

Dima Boger in Django [ru] #STAY HOME
Кусатель Забочок
[default: timezone.now] >>> timezone.now
You are trying to add a non-nullable field 'nF1' to protokol without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
Select an option:
Ну значит у тебя в миграции несколько полей
источник

DB

Dima Boger in Django [ru] #STAY HOME
Попробуй вчитаться в ошибку и поставить себя на место джанги)
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
Dima Boger
Попробуй вчитаться в ошибку и поставить себя на место джанги)
Стану джангой :) Спасибо. попробую несколько раз потыкать.
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
Dima Boger
Попробуй вчитаться в ошибку и поставить себя на место джанги)
да. в модели несколько полей, видимо при создании каждого надо было вводить timezone.now
источник

DB

Dima Boger in Django [ru] #STAY HOME
Кусатель Забочок
да. в модели несколько полей, видимо при создании каждого надо было вводить timezone.now
Только если это то, что тебе нужно) это не серебренная пуля, поэтому и предлагаю подумать и вчитаться)
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
Dima Boger
Только если это то, что тебе нужно) это не серебренная пуля, поэтому и предлагаю подумать и вчитаться)
посеребренная. Миграция прошла, но к сожалению, я успел натыкать лишнего
 File "D:\Python\lib\site-packages\django\db\models\fields\__init__.py", line 1776, in get_prep_value
   ) from e
TypeError: Field 'nF1' expected a number but got datetime.datetime(2020, 6, 27, 17, 47, 33, 513712, tzinfo=<UTC>).
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
это получается при manage migrate
источник

AD

Alex Dem in Django [ru] #STAY HOME
Кусатель Забочок
посеребренная. Миграция прошла, но к сожалению, я успел натыкать лишнего
 File "D:\Python\lib\site-packages\django\db\models\fields\__init__.py", line 1776, in get_prep_value
   ) from e
TypeError: Field 'nF1' expected a number but got datetime.datetime(2020, 6, 27, 17, 47, 33, 513712, tzinfo=<UTC>).
где-то в поле nF1 пытаешься пихать datetime, а он ждет int/str который может быть сериализирован в int
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
это да. а как исправить? грохнуть миграцию?
источник

AD

Alex Dem in Django [ru] #STAY HOME
Кусатель Забочок
это да. а как исправить? грохнуть миграцию?
я не знаю, надо смотреть
источник

AD

Alex Dem in Django [ru] #STAY HOME
Кусатель Забочок
это да. а как исправить? грохнуть миграцию?
если при migrate вылазит, то надо посмотреть на какой
можно попробовать удалить файл падающей миграции + все последующие, если таковые есть
источник

AD

Alex Dem in Django [ru] #STAY HOME
потом сделать снова
makemigrations
migrate
источник

КЗ

Кусатель Забочок... in Django [ru] #STAY HOME
Alex Dem
потом сделать снова
makemigrations
migrate
Спасибо!
источник

AD

Alex Dem in Django [ru] #STAY HOME
но осторожно с этим, без опыта можно дров наломать и проще будет уже тогда дропать БД
источник

DB

Dima Boger in Django [ru] #STAY HOME
Кусатель Забочок
это да. а как исправить? грохнуть миграцию?
Да, она не применилась
источник

AK

ARTUR KNYAZEV in Django [ru] #STAY HOME
есть файл1
    def funk():
        x = 10

есть файл2
    Можно ли достать переменную x в файле2
источник

AK

ARTUR KNYAZEV in Django [ru] #STAY HOME
,?
источник