city_light无法填充数据库

时间:2020-07-07 15:01:45

标签: django

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-allpython 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()

我错过了什么吗?我希望包括所有国家/地区的所有城市,但我会不断遇到所有这些错误。

0 个答案:

没有答案