数据库表的建立

一个网站的数据库经常会反应网页上的输入窗体的使用情况,而输入窗体中常常会有一些字段提供候选数据(例如在窗体中询问喜欢的颜色,品牌车型,尺寸大小等)供网友选择,那么如何在django中实现呢?

# 我们首先在models.py中加入以下内容
class Product(models.Model):
    SIZES = (
        ('S', 'Smaill'),
        ('M', 'Medium'),
        ('L', 'Large'), 
    )
  sku = models.CharField(max_length=5)
  name = models.CharField(max_length=20)
  price = models.PositiveIntegerField()
  size = models.CharField(max_length=1, choices=SIZES)

如上述代码所示,现场建一个名为SIZES的元组,其中每一个元素也是元组。创建完之后执行python manage.py migrate命令进行数据库表初始化,如果这是第一次设置Model的内容要先执行python manage.py makemigrations命令。
回到admin.py中,加入这个新的类并注册 ( 提前创建了一个超级管理员 ) :

from django.contrib import admin
from mysite.models import Product

admin.site.register(Product)

这样打开浏览器,进入django的admin界面,打开Product的操作界面,就可以看到,Size采用列表的方式来呈现。

但是我们发现SIZES中的第一行数据拼错了,应该是Small才对,我们写成了Smaill。我们要修正这个错误很简单,只要在models.py中更正即可。但是要注意的是,因为Django把数据库的操作抽象化了,每一个新增以及修正步骤都必须被记录下来,以便于后续的数据库迁移操作,所以处理在models.py中把这个拼错的地方修正之外,还要执行python manage.py makemigrations以及python manage.py migrate记录下这个修正操作。
这些操作都会被记录在migrations文件夹下。

你可能感兴趣的:(数据库表的建立)