运行测试时,不存在Django关系

我正在使用Django 2.2.3和Postgres。

我正在尝试将测试添加到项目中,并在进行django.db.utils.ProgrammingError: relation "auth_group" does not existpython ./manage.py test时在测试数据库创建步骤中不断遇到错误python ./manage.py test app_name

首先,我的建议是我有点弄乱了数据库模式-不久前,开发团队被要求从另一个数据库中导入多个表,而我是通过直接数据库完成的使用pgsql导入。比起我使用python manage.py inspectdb创建模型并将它们放置到单独的应用程序中。 该命令创建了一个初始迁移,如下所示:

class Migration(migrations.Migration):

initial = True

dependencies = []

operations = [
    migrations.CreateModel(
        name='SomeModelName',fields=[
            (
                'id',models.AutoField(auto_created=True,primary_key=True,serialize=False,verbose_name='ID'),),('some_other_field)',models.CharField(max_length=254,unique=True)),],options={'db_table': 'some_existing_table_name','managed': False,},

一切正常,因为比我创建并应用了多个迁移没有任何问题。但是现在我已经受困于该测试问题。

经过简短的调查,我发现inspectdb也为某些身份验证表创建了模型,并且它们存在于带有旧表的该应用程序的models.py中。因此,在讨论的应用程序的初始迁移中存在以下几行:

        migrations.CreateModel(
        name='AuthGroup',('name',models.CharField(max_length=80,options={'db_table': 'auth_group',

和models.py:

class AuthGroup(models.Model):
name = models.CharField(unique=True,max_length=80)

class Meta:
    managed = False
    db_table = 'auth_group'

我认为这可能与一个问题有关,但是我尝试从INSTALLED_APPS删除该应用程序,完全删除了该应用程序,但没有任何效果。在运行测试时我仍然遇到这些错误

任何想法,我该怎么做才能解决此问题? 也许是其他原因引起的?

PS 。此问题与South软件包的问题无关,因为该项目未使用它。

谢谢。

P.P.S。 INSTALLED_APPS

INSTALLED_APPS = (
[
    'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.sites','django.contrib.messages','django.contrib.staticfiles',]
+ PROJECT_APPS
+ THIRD_PARTY_APPS
)
chahu2008 回答:运行测试时,不存在Django关系

我发现问题与自定义用户模型有关,自定义用户模型的声明方式如下:

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    class Meta:
        db_table = 'auth_user'

原来,用默认的Django用户替换它可以解决此问题。

本文链接:https://www.f2er.com/3111365.html

大家都在问