打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
django

使用Model

当定义了Model之后,你需要告诉Django去使用这些models,
修改settings.py中的INSTALLED_APPS属性,增加包含models.py的模块名称即可。

比如你的models.py文件的路径是 mysite.myapp.models.py,那么

INSTALLED_APPS = (        
'mysite.myapp',
  )
如果你在settings.py的INSTALLED_APPS中添加了新的app,需要重新运行manage.py syncdb命令

字段选项
每一个字段都有一些参数,比如CharField字段有一个max-length的参数,表示字段类型的长度。
Django定义了一些所有字段(类)都有的公共的参数,下面简单的总结一下他们的使用:
null    :如果是True,Django会在数据库中将此字段的值置为NULL,默认值是False
blank :如果是True,那么这个字段是可以不填的。默认是False
blank和null的区别:null纯粹是与数据库有关系的。而blank是与页面必填项验证有关的。如果blank=False,那么这个字段就是必填的。
choices
An iterable (e.g., a list or tuple) of 2-tuples to use as choices for this field. If this is given, Django's admin will use a select box instead of the standard text field and will limit choices to the choices given.
一个二维的元组被用作choices,如果这样定义,Django会select box代替普通的文本框,
并且限定choices的值是元组中的值

  1. YEAR_IN_SCHOOL_CHOICES = (   
  2.      ('FR', 'Freshman'),   
  3.      ('SO', 'Sophomore'),   
  4.      ('JR', 'Junior'),   
  5.      ('SR', 'Senior'),   
  6.      ('GR', 'Graduate'),   
  7. )  
YEAR_IN_SCHOOL_CHOICES = ( ('FR', 'Freshman'), ('SO', 'Sophomore'), ('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'),)
default:
可以设置字段的默认值,它可以是一个普通的值,或者是一个可以调用(callable)的对象,如果是一个callable的对象,那么每次调用的时候都会创建一个新的对象。
primary_key:
如果是True,那么这个字段就是这个表的主键。如果在model的字段上没有定义primary_key=True,那么Django会自动添加一个IntegerField(id)类型的字段,作为主键。所以一般情况下你不需要设置这个属性,除非你不想使用默认的设置。
unique
:如果Ture,设定字段的值是唯一的。
Automatic primary key fields
默认情况下,Django会自动为每一个model定义如下字段:

id = models.AutoField(primary_key=True)这是一个自增长的主键你可以在任何一个字段上设置primary_key=True,如果Django发现你定义了这个属性,他就不会自动添加id字段了
Verbose field names
除了ForeignKey,ManyToManyField,OneToOneField外,每一个field类型的第一个参数,是一个可选参数-Verbose field names。如果没有这个参数,Django会自动的按照字段的名称创建一个。两个单词之间会用空格分割。

verbose name 就是Person's first name

       first_name = models.CharField("Person's first name", max_length=30)

verbose name是 first name

          first_name = models.CharField(max_length=30)  

Relationships Django定一个三种通用的类型,去描述数据库表之间的关系:many-to-one, many-to-many and one-to-one.

Many-to-one relationships: 使用ForeignKey来定一个Many-to-one的关联关系。就像使用普通的Field一样。
ForeignKey的第一个参数必须定义这个model与哪一个model关联
比如,Car model有一个Manufacturer:一个制造厂(one)可以生产很多汽车(Many),但是一个汽车只能有一个制造厂

  1. class Manufacturer(models.Model):   
  2.     # ...   
  3.   
  4. class Car(models.Model):   
  5.     #一个汽车只能有一个制造厂   
  6.      manufacturer = models.ForeignKey(Manufacturer)   
  7.     # ... 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
字段的参数
python测试开发django-31.admin后台一对多关系
Django模型层Meta内部类详解
Django(四)后台管理及Field参数
Django 开发内容管理系统
Django的开发流程与数据库设计
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服