Django模型增加字段

 增加字段的操作

from django.db import models
import datetime
# Create your models here.

# 圖書類
class BookInfo(models.Model):
    """圖書模型類"""
    #圖書名稱:CharField說明是一個字符串,指定字符串最大長度
    btitle = models.CharField(max_length=20)


    #後期增加圖書出版日期:DateField說明是一個日期類型
    bpub_date = models.DateField(auto_now_add=True)

 

python manage.py makemigrations

選擇選項1,按回車。添加新字段。生成遷移文件

python manage.py migrate

(venv) G:\Python\git\python\05-Django\HelloWorld>python manage.py makemigrations
You are trying to add the field 'bpub_date' with 'auto_now_add=True' to bookinfo 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] >>>
Migrations for 'django_webapp':
  django_webapp\migrations\0003_bookinfo_bpub_date.py
    - Add field bpub_date to bookinfo

(venv) G:\Python\git\python\05-Django\HelloWorld>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, django_webapp, sessions
Running migrations:
  Applying django_webapp.0003_bookinfo_bpub_date... OK

 python manage.py shell

進入交互式解釋器

>>> from django_webapp.models import BookInfo

from 應用名.models import 類名

>>> BookInfo.objects.all().values()

顯示數據


(venv) G:\Python\git\python\05-Django\HelloWorld>python manage.py shell
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django_webapp.models import BookInfo
>>> BookInfo.objects.all().values()
<QuerySet [{'id': 1, 'btitle': 'aaa', 'bpub_date': datetime.date(2019, 9, 17)}, {'id': 2, 'btitle': 'aaa', 'bpub_date': datetime.date(2019, 9, 17)}]>
>>>

 增加數據

>>> x=BookInfo()
>>> x.btitle='天龍八部'
>>> import datetime
>>> x.bpub_date=datetime.date(2020,11,7)
>>> x.save()
>>> BookInfo.objects.all().values()
<QuerySet [{'id': 1, 'btitle': 'aaa', 'bpub_date': datetime.date(2019, 9, 17)}, {'id': 2, 'btitle': 'aaa', 'bpub_date': datetime.date(2019, 9, 17)}, {'id':
3, 'btitle': '天龍八部', 'bpub_date': datetime.date(2019, 9, 17)}]>

更新數據

>>> x.bpub_date=datetime.date(2022,10,8)
>>> x.save()
>>> BookInfo.objects.all().values()
<QuerySet [{'id': 1, 'btitle': 'aaa', 'bpub_date': datetime.date(2019, 9, 17)}, {'id': 2, 'btitle': 'aaa', 'bpub_date': datetime.date(2019, 9, 17)}, {'id':
3, 'btitle': '天龍八部', 'bpub_date': datetime.date(2022, 10, 8)}]>

刪除數據 

>>> z=BookInfo.objects.get(id=1)
>>> z.btitle
'aaa'
>>> z.delete()
(1, {'django_webapp.BookInfo': 1})

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章