Книга «Изучаем Python»



Pdf көрінісі
бет260/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   256   257   258   259   260   261   262   263   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

python manage.py shell
 
>>> 
from django.contrib.auth.models import User
 
>>> 
User.objects.all()
[, , ]
 
>>> 
for user in User.objects.all():
...
print(user.username, user.id)
... 
ll_admin 1 
eric 2 
willie 3 
>>>
В точке 

в сеанс оболочки импортируется модель 
User
. После этого просматрива-
ются все пользователи, созданные до настоящего момента 

. В выходных данных 
перечислены три пользователя: 
ll_admin

eric
и 
willie
.
В точке 

перебирается список пользователей, и для каждого пользователя вы-
водится его имя и идентификатор. Когда Django спросит, с каким пользователем 
связать существующие темы, мы используем один из этих идентификаторов.
Миграция базы данных
Зная значение идентификатора, можно провести миграцию базы данных.
 
(venv)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)
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()
 
>>> 1
Migrations for 'learning_logs':
0003_topic_owner.py:
- Add field owner to topic
Сначала выдается команда 
makemigrations

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

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

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

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

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

идентификатор пользователя 1. Вы можете 


432

Достарыңызбен бөлісу:
1   ...   256   257   258   259   260   261   262   263   ...   266




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

    Басты бет