• 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 是用来查看数据库模型是否有问题的选项的 ,挺有用的)

    这样看一下就明白了

    其实可以先固定几款车型,这样,很多人都可以同时指向一款车了,比如说,大家都买了了上面对象 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'

    神奇之处

  • 相关阅读:
    O(big oh) (big omega) (big theta)
    Ex 7_21 在一个流网络中,一条边被称为是临界的...第十三次作业
    Ex 7_17 考虑如下的网络(其中数字为对应边的容量)...第十三次作业
    Expm 10_2 实现Ford-Fulkerson算法,求出给定图中从源点s到汇点t的最大流,并输出最小割。
    pat1009
    pat1008
    pat1007
    pat1006
    pat1005
    pat1004
  • 原文地址:https://www.cnblogs.com/spaceship9/p/3483073.html
Copyright © 2020-2023  润新知