django model Foreign key usage 关系型数据库 ORM

django

的模型

from django.db import models
"""
A model pair to map car and its manufacturer
""" class Manufacturer(models.Model):
brand = models.CharField(max_length=100)
location = models.CharField(max_length=100) def __unicode__(self):
return self.brand class Meta:
ordering = ["brand"] class Car(models.Model):
owner = models.CharField(max_length=100)
volume = models.CharField(max_length=100)
manufacturer = models.ForeignKey('Manufacturer')
is_active = models.BooleanField(default=True) def __unicode__(self):
return self.owner class Meta:
ordering = ["owner"]

每个车只有一个车主,每个车来自与只有一个工厂。可是这个工厂确有很多车。

先用的django 生成数据表 python manage.py syncdb              (P.S.   python manage.py validate 是用来查看数据库模型是否有问题的选项的 ,挺有用的)

这样看一下就明白了

django model Foreign key usage 关系型数据库 ORM

其实可以先固定几款车型,这样,很多人都可以同时指向一款车了,比如说,大家都买了了上面对象 m2 的车,或者m3的车。

django帮你自动搞定,这些数据库操作。ForeignKey非常爽的用的说。

简单来说,django 里面 属性如果设置成了 manufacturer = models.ForeignKey('Manufacturer') 了的话,

新建该有ForeignKey属性的 对象的时候, 这个属性要是一个 该ForeignKey的 class 对象实例。 很科学!

其实感觉就如同这样:

>>> m3 = Manufacturer(brand="BMW", location="Germany")
>>> m3.save()
>>> lily = Car(owner = "Lily", volume = "1.4T", manufacturer = m3)
>>> lily.save()
>>> lily.manufacturer
<Manufacturer: BMW>
>>> lily.manufacturer = m2
>>> lily.save()
>>> lily.manufacturer
<Manufacturer: Toyota>
>>> lily.manufacturer.location
'Japan'

神奇之处

上一篇:第八周读书笔记(人月神话X月亮与六便士)——到底什么才是一个程序员的自我修养?


下一篇:SQL Server 配置管理器