zoukankan      html  css  js  c++  java
  • 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'

    神奇之处

  • 相关阅读:
    CF 142B Tprimes
    CF 231A Team
    poj 2001 Shortest Prefixes ——字典树入门
    hdu 1039 Easier Done Than Said?
    poj 2528 Mayor's posters
    hdu 1061 Rightmost Digit
    poj 2503 Babelfish
    CF271 A. Beautiful Year
    poj 2752
    CF271 B. Prime Matrix
  • 原文地址:https://www.cnblogs.com/spaceship9/p/3483073.html
Copyright © 2011-2022 走看看