django实现地址省市区三级联动和drf-extensions扩展实现缓存
前文
在用户录入地址时,需要进行省市区的选择。在页面加载时,向后端请求省份数据,当用户选择确定省份后,向后端请求该省份的城市数据;在用户选择确定城市数据后,向后端请求该城市的区县信息。我们把这个过程称为省市区三级联动。
创建一个应用areas
cd到apps文件夹下创建
python ../../manage.py startapp areas
安装完之后注意配置设置文件:
INSTALLED_APPS = [
‘areas.apps.AreasConfig‘,#省市区数据
]
还有系统urls的配置和admin后台管理也要写一下
models模型类创建省市区数据表,自关联方式
from django.db import models
# Create your models here.
class Areas(models.Model):
name = models.CharField(max_length=50, verbose_name='地名')
# 外键链接自己,ondelete是当删除时和主表的行为
pid = models.ForeignKey('self', verbose_name='父级的行政区域id', on_delete=models.SET_NULL, related_name='addinfo', null=True, blank=True)
# on_delete = models.CASCADE # 删除关联数据的时候,与之的关联也删除
# on_delete = models.DO_NOTHING # 不作操作
# on_delete = models.PROTECT # 删除关联就保存,保护
# on_delete = models.SET_DEFAULT # 与之关联设为默认值
# on_delete = models.SET_NULL # 与之关联设为空
def __str__(self):
return self.name
class Meta:
db_table = 'areas'
verbose_name_plural = '地区'
模型类代码说明:
<