Django 資料庫table 新增欄位
通常在Django的app發展的時候,通常會因為各種需求而要增加新的欄位進去資料庫。
而Django Books English 的假設是"讀者小的我不太熟SQL的指令"。
所以在Chapter 10裡面教你怎麼新增新的欄位:
=======================================
在你想新增欄位的app裡面的 model.py 裡面,新增要多加進去的新欄位。
執行下面這個指令會顯示SQL指令 (假設你的app名稱是books)
python manage.py sqlall books
登入SQL的指令模式。然後用ALTER TABLE指令來新增新的欄位。
=======================================
所以其實看一看,方法就很直接,就是去model.py裡面修改新增欄位的設定,之後再登入SQL server裡面手動新增欄位。
下面是我試著去在原本的app books 的 model.py 裡面新增一個 叫做comment欄位的過程:
先去修改modle.py在class Book裡面新增一個欄位設定:
comment = models.CharField(max_length=255)
之後再登入SQL server執行:
ALTER TABLE books_book ADD comment char(255) DEFAULT 'NONE';
登出sql之後,進去 python manage.py shell 裡面試看看有沒有成功:
from books.model import Book
b = Book.object.all()[0]
b.comment
如果有出現
'NONE '
應該就沒問題,但是進去admin裡面的Books選項還沒出現這個comment的欄位。
但是跑過python manage.py syncdb之後就出現了。
而Django Books English 的假設是"讀者小的我不太熟SQL的指令"。
所以在Chapter 10裡面教你怎麼新增新的欄位:
=======================================
在你想新增欄位的app裡面的 model.py 裡面,新增要多加進去的新欄位。
執行下面這個指令會顯示SQL指令 (假設你的app名稱是books)
python manage.py sqlall books
登入SQL的指令模式。然後用ALTER TABLE指令來新增新的欄位。
=======================================
所以其實看一看,方法就很直接,就是去model.py裡面修改新增欄位的設定,之後再登入SQL server裡面手動新增欄位。
下面是我試著去在原本的app books 的 model.py 裡面新增一個 叫做comment欄位的過程:
先去修改modle.py在class Book裡面新增一個欄位設定:
comment = models.CharField(max_length=255)
之後再登入SQL server執行:
ALTER TABLE books_book ADD comment char(255) DEFAULT 'NONE';
登出sql之後,進去 python manage.py shell 裡面試看看有沒有成功:
from books.model import Book
b = Book.object.all()[0]
b.comment
如果有出現
'NONE '
應該就沒問題,但是進去admin裡面的Books選項還沒出現這個comment的欄位。
但是跑過python manage.py syncdb之後就出現了。
留言
張貼留言