М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения



Pdf көрінісі
бет326/334
Дата18.10.2023
өлшемі6,19 Mb.
#186390
1   ...   322   323   324   325   326   327   328   329   ...   334
Байланысты:
Изучаем Python


Глава 19 • Учетные записи пользователей
Миграция базы данных
Зная значение идентификатора, можно провести миграцию базы данных. Когда 
вы это делаете, Python предлагает связать модель 
Topic
с конкретным владельцем 
временно или добавить в 
models .py
значение по умолчанию, которое сообщит, как 
следует поступить. Выберите вариант 1:

(ll_env)learning_log$ 
python manage.py makemigrations learning_logs

You are trying to add a non-nullable field 'owner' to topic 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: 
1

Please enter the default value now, as valid Python
The datetime and django.utils.timezone modules are available, so you can do 
e.g. timezone.now
Type 'exit' to exit this prompt

>>> 1
Migrations for 'learning_logs':
learning_logs/migrations/0003_topic_owner.py
- Add field owner to topic
(ll_env)learning_log$
Сначала выдается команда 
makemigrations

. В ее выходных данных 

Django со-
общает, что мы пытаемся добавить обязательное поле (значения которого отличны 
от null) в существующую модель (
topic
) без указания значения по умолчанию. 
Django предоставляет два варианта 

: мы можем либо указать значение по умол-
чанию прямо сейчас, либо завершить выполнение программы и добавить значение 
по умолчанию в 
models .py
. В точке 

выбирается первый вариант. Тогда Django 
запрашивает значение по умолчанию 

.
Чтобы связать все существующие темы с исходным административным пользо-
вателем 
ll_admin
, я ввел в точке 

идентификатор пользователя 1. Вы можете 
использовать идентификатор любого из созданных пользователей; он не обязан 
быть суперпользователем. Django проводит миграцию базы данных, используя это 
значение, и создает файл миграции 
0003_topic_owner .py
, добавляющий поле 
owner
в модель 
Topic
.
Теперь можно провести миграцию. Введите следующую команду в активной вир-
туальной среде:
(ll_env)learning_log$ 


Достарыңызбен бөлісу:
1   ...   322   323   324   325   326   327   328   329   ...   334




©www.engime.org 2024
әкімшілігінің қараңыз

    Басты бет