省市数据

This commit is contained in:
曹前明 2022-05-30 16:08:43 +08:00
parent b94acf0f73
commit a9658b0f55
5 changed files with 1878 additions and 4 deletions

View File

@ -0,0 +1,23 @@
# Generated by Django 3.0.5 on 2022-05-30 07:20
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('system', '0020_auto_20220513_0926'),
]
operations = [
migrations.AlterField(
model_name='city',
name='id',
field=models.CharField(max_length=20, primary_key=True, serialize=False, verbose_name='id'),
),
migrations.AlterField(
model_name='province',
name='id',
field=models.CharField(max_length=20, primary_key=True, serialize=False, verbose_name='id'),
),
]

View File

@ -7,11 +7,11 @@ from utils.model import SoftModel, BaseModel
from simple_history.models import HistoricalRecords
class Province(models.Model):
id = models.PositiveIntegerField('id', primary_key=True)
id = models.CharField('id', primary_key=True, max_length=20)
name = models.CharField(max_length=20)
class City(models.Model):
id = models.PositiveIntegerField('id', primary_key=True)
id = models.CharField('id', primary_key=True, max_length=20)
name = models.CharField(max_length=20)
parent = models.ForeignKey(Province, on_delete=models.CASCADE)

1839
server/apps/system/pcity.py Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
from django.urls import path, include
from .views import CityViewSet, ProviceViewSet, UserViewSet, OrganizationViewSet, PermissionViewSet, RoleViewSet, PositionViewSet, TestView, DictTypeViewSet, DictViewSet, sendMsg
from .views import CityViewSet, ProviceViewSet, UserViewSet, OrganizationViewSet, PermissionViewSet, RoleViewSet, PositionViewSet, TestView, DictTypeViewSet, DictViewSet, InitAreaView, sendMsg
from rest_framework import routers
@ -17,5 +17,6 @@ router.register('city', CityViewSet, basename="city")
urlpatterns = [
path('', include(router.urls)),
path('sendmsg/', sendMsg.as_view()),
path('test/', TestView.as_view())
path('test/', TestView.as_view()),
path('initdata/', InitAreaView.as_view())
]

View File

@ -361,6 +361,7 @@ class UserViewSet(PageOrNot, ModelViewSet):
return Response()
class WXMPlogin(APIView):
authentication_classes=[]
permission_classes=[]
@ -452,5 +453,15 @@ def mediaauth(request):
return HttpResponseForbidden()
class InitAreaView(APIView):
def get(self, request):
from django.db import transaction
with transaction.atomic():
from apps.system.pcity import ps, cs
for i in ps:
Province.objects.create(id=i['code'], name=i['name'])
for i in cs:
City.objects.create(id=i['code'], name=i['name'], parent=Province.objects.get(id=i['provinceCode']))
return Response()