当前位置: 主页 > 日志 > Django >

Django模型外键为本身时该如何定义?

要建立一个“行政区域"模型,其中要有一个字段来标识”父区域“,如何设置该字段的外键为“行政区域"模型本身呢?

models.ForeignKey()的第一个参数设置为'self'即可,如下示例:

class Region(models.Model):
    """行政区域表
    国家,省,市,区(县)
    """
    parent = models.ForeignKey('self')
    name = models.CharField(max_length=30)
    region_type = models.IntegerField()

    class Meta:
        db_table = "regions"

对应的表结构为:

CREATE TABLE `regions` (
  `id` int(11) NOT NULL auto_increment,
  `parent_id` int(11) NOT NULL,
  `name` varchar(30) NOT NULL,
  `region_type` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `regions_63f17a16` (`parent_id`),
  CONSTRAINT `parent_id_refs_id_29d90cbd` FOREIGN KEY (`parent_id`) REFERENCES `regions` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

[日志信息]

该日志于 2012-06-15 00:24 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “Django模型外键为本身时该如何定义?” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!!    (尊重他人劳动,你我共同努力)
   
验证(必填):   点击我更换验证码

redice's Blog  is powered by DedeCms |  Theme by Monkeii.Lee |  网站地图 |  本服务器由西安鲲之鹏网络信息技术有限公司友情提供

返回顶部