13 自关联
class AreaInfo(models.Model): '''地区模型类''' #地区名称 atitle = models.CharField(max_length=20) #关系属性,代表当前地区的父级地区(跟自身建立关联) aParent = models.ForeiKey('self',null=True,blank=True)
终端进入批量数据所在的那个文件目录,执行mysql -uroot,进入mysql,切换到要使用的数据库,然后批量执行一个sql语句:
source areas.sql;
areas.sql的内容如下:
insert into booktest_arealinfo value('110000','京城',NULL); insert into booktest_arealinfo value('110100','北京市','110000'); insert into booktest_arealinfo value('110001','东城区','110100'); insert into booktest_arealinfo value('110002','西城区','110100'); insert into booktest_arealinfo value('110003','丰台区','110100');
...
views中定义一个函数:
def areas(request): '''获取广州市的上级和下级地区''' # 获取各种事的信息 area = AreaInfo.objects.get(atitle='北京市') # 查询广州市的上级地区 parent = area.aParent # 查询下级地区 child = area.areainfo_set.all() return render(request,'booktest/areas.html',{'area':area,'parent':parent,'child':child})
模版文件:
<!DOCTYPE html>
<html>
<head>
<title>areas</title>
</head>
<body>
<h1>{{area.atitle}}</h1>
<h1>上级地区</h1>
<h2>
<ul>{{parent.atitle}}</ul>
</h2>
<h2>下级地区:</h2>
<ul>
{% for a in child %}
<li>{{ a.atitle }}</li>
{%endfor%}
</ul>
</body>
</html>

浙公网安备 33010602011771号