Django тестирование абстрактных моделей - табличное отношение не существует

Я пытаюсь протестировать абстрактную модель. Я создал models.py в каталоге тестов, где я наследую от абстрактных базовых классов. В своих тестах я импортирую из tests/models.py, но по какой-то причине я получаю ошибку, что таблица не существует, несмотря на то, что это прекрасно работает в других проектах.

При запуске python manage.py test я получаю следующую ошибку:

psycopg2.errors.UndefinedTable: relation "address_address" does not существует LINE 1: ...postal_code", "address_address". "country_id" FROM "адрес_а...

Вот структура файлов моего приложения:

myapp/
    tests/
        __init__.py
        models.py
        test_models.py
    __init__.py
    admin.py
    apps.py
    models.py

Вот мой tests/models.py:

from ..models import (
    AbstractAddress,
    AbstractBillingAddress,
    AbstractShippingAddress,
    AbstractBillingShippingAddresses,
)

class Address(AbstractAddress):
    pass

class BillingAddress(AbstractBillingAddress):
    pass

class ShippingAddress(AbstractShippingAddress):
    pass

class BillingShippingAddresses(AbstractBillingShippingAddresses):
    pass

Вот пример одной из абстрактных моделей:

class AbstractAddress(AddressMixin, models.Model):
    line_1 = models.CharField(_('line 1'), max_length=255, blank=True)
    line_2 = models.CharField(_('line 2'), max_length=255, blank=True)
    city = models.CharField(_('city'), max_length=255, blank=True)
    province = models.CharField(_('state'), max_length=255, blank=True)
    state = models.CharField(_('zip/postal code'), max_length=64, blank=True)
    country = models.ForeignKey(
        'address.Country',
        blank=True,
        null=True,
        on_delete=models.PROTECT,
        related_name='%(class)s_country',
        verbose_name=_('country')
    )

    class Meta:
        abstract = True

Я попробовал добавить app_label = 'address' к моим тестовым моделям, но все равно получаю ту же ошибку.

Единственное, о чем я могу думать, это то, что тестовые модели наследуются от абстрактной модели, которая имеет внешний ключ к "реальной"/нетестовой модели, но я попробовал протестировать абстрактную модель другого приложения, которая не имеет никаких внешних ключей, и я все еще получаю ту же ошибку, что таблица не существует.

Я использую Django==3.2.9. Проект, в котором этот метод тестирования работает без ошибок, использует Django==3.2.8.

Вернуться на верх