锁定老帖子 主题:Django Model
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-01
今天晚上看了一下Django文档的model部分,简要翻译一下,以备后用:
原文地址: http://docs.djangoproject.com/en/dev/topics/db/models/
定义一个Model
每一个model必须是django.db.models.Model的一个子类 from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) 对应下面的sql: CREATE TABLE myapp_person ( "id" serial NOT NULL PRIMARY KEY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL );
默认情况下,Django会在model名的前面加上你的“应用的名称_”作为数据库表的名称。
使用Model 当定义了Model之后,你需要告诉Django去使用这些models,
比如你的models.py文件的路径是 mysite.myapp.models.py那么只需要这样写即可: INSTALLED_APPS = ( #... 'mysite.myapp', #... ) 注意:如果你在settings.py的INSTALLED_APPS中添加了新的app,需要重新运行manage.py syncdb命令
字段类型
YEAR_IN_SCHOOL_CHOICES = ( ('FR', 'Freshman'), ('SO', 'Sophomore'), ('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'), )
id = models.AutoField(primary_key=True)
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) ForeignKey, ManyToManyField and OneToOneField 要求第一个字段必须是一个model class,所以你可以使用
poll = models.ForeignKey(Poll, verbose_name="the related poll") sites = models.ManyToManyField(Site, verbose_name="list of sites") place = models.OneToOneField(Place, verbose_name="related place")
class Manufacturer(models.Model): # ... class Car(models.Model): #一个汽车只能有一个制造厂 manufacturer = models.ForeignKey(Manufacturer) # ...
未完待续...... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 5349 次