python manage.py cities_light
并没有出现错误,但是没有填充数据库。
我想包括国家/地区,因此我删除了CITIES_LIGHT_INCLUDE_COUNTRIES设置,然后重复执行python manage.py cities_light
,但仍然没有任何城市。
因此,我重新添加了CITIES_LIGHT_INCLUDE_COUNTRIES
设置。当我尝试用python manage.py cities_light --force-import-all
和python manage.py cities_light --force-all
填充数据库时,出现以下错误:
WARNING 2020-07-07 14:49:46,343 cities_light 4654 140274572259456 Saving Manono, Democratic Republic of the Congo failed: IntegrityError('null value in column "region_id" violates not-null constraint\nDETAIL: Failing row contains (9099, Manono, Manono, manono, 9179907, , Manono, Democratic Republic of the Congo, 9179907, 40, null).\n')
WARNING 2020-07-07 14:50:13,388 cities_light 4654 140274572259456 Saving Gldanskiy Rayon, Georgia failed: IntegrityError('null value in column "region_id" violates not-null constraint\nDETAIL: Failing row contains (13587, Gldanskiy Rayon, Gldanskiy Rayon, gldanskiy-rayon, 614519, , Gldanskiy Rayon, Georgia, 614519, 79, null).\n')
WARNING 2020-07-07 14:50:15,785 cities_light 4654 140274572259456 Saving Djibloho, Equatorial Guinea failed: IntegrityError('null value in column "region_id" violates not-null constraint\nDETAIL: Failing row contains (13970, Djibloho, Djibloho, djibloho, 12168385, , Djibloho, Equatorial Guinea, 12168385, 88, null).\n')
Traceback (most recent call last):
File "manage.py", line 31, in <module>
execute_from_command_line(sys.argv)
File "/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/venv/lib/python3.8/site-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/venv/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/venv/lib/python3.8/site-packages/cities_light/management/commands/cities_light.py", line 205, in handle
self.city_import(items)
File "/venv/lib/python3.8/site-packages/cities_light/management/commands/cities_light.py", line 502, in city_import
subregion_id = self._get_subregion_id(
File "/venv/lib/python3.8/site-packages/cities_light/management/commands/cities_light.py", line 282, in _get_subregion_id
self._region_codes[country_id][region_id] = Region.objects.get(
File "/venv/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/venv/lib/python3.8/site-packages/django/db/models/query.py", line 406, in get
raise self.model.DoesNotExist(
cities_light.models.DoesNotExist: Region matching query does not exist.
我正在使用django-cities-light == 3.6.0
这是我的settings.py
CITIES_LIGHT_APP_NAME = "cities_light"
CITIES_LIGHT_TRANSLATION_LANGUAGES = ["vn", "en", "fil", "abbr", ]
CITIES_LIGHT_INCLUDE_COUNTRIES = ["PH", "VN", "US", "SG", "AU", "USA", ]
CITIES_LIGHT_INCLUDE_CITY_TYPES = ["PPL", "PPLA", "PPLA2", "PPLA3", "PPLA4", "PPLC", "PPLF", "PPLG", "PPLL", "PPLR", "PPLS", "STLMT",]
这是我的模特。py
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
from django.db import models
from cities_light.models import City
from .managers import UserManager
class Address(models.Model):
address_line_1 = models.CharField(max_length=150, default="")
address_line_2 = models.CharField(max_length=150, default="")
city = models.ForeignKey(City, on_delete=models.CASCADE, null=True, blank=True)
class Meta:
verbose_name_plural = "addresses"
class User(AbstractBaseUser, PermissionsMixin):
address = models.ForeignKey(Address, on_delete=models.CASCADE, null=True, blank=True)
email = models.EmailField(max_length=100, unique=True, null=True)
name = models.CharField(max_length=100, null=True, blank=True)
USERNAME_FIELD = 'email'
EMAIL_FIELD = 'email'
objects = UserManager()
我错过了什么吗?我希望包括所有国家/地区的所有城市,但我会不断遇到所有这些错误。