Я получаю сообщение Работает ли сервер на хосте "db" (192.168.176.2) и принимает ли TCP/IP соединения на порт 5433? при добавлении AUTH_USER_MODEL в настройки

У меня есть веб-приложение django с аутентификацией. Все работало нормально, когда я работал с sqlite и pipenv, но теперь я перешел на docker и postgres и постоянно получаю ошибку:

web_1 |   File "/usr/local/lib/python3.9/site-packages/psycopg2/__init__.py", line 122, in connect
web_1 |     conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
web_1 | django.db.utils.OperationalError: could not connect to server: Connection refused
web_1 |         Is the server running on host "db" (192.168.176.2) and accepting
web_1 |         TCP/IP connections on port 5433?

Если я удалю строку с AUTH_USER_MODEL в settings.py, эта ошибка исчезнет, но я получу другие ошибки:

web_1 | django.core.management.base.SystemCheckError: SystemCheckError: System check identified some issues:
web_1 | 
web_1 | ERRORS:
web_1 | accounts.User.groups: (fields.E304) Reverse accessor 'Group.user_set' for 'accounts.User.groups' clashes with reverse accessor for 'auth.User.groups'.
web_1 |         HINT: Add or change a related_name argument to the definition for 'accounts.User.groups' or 'auth.User.groups'.
web_1 | accounts.User.user_permissions: (fields.E304) Reverse accessor 'Permission.user_set' for 'accounts.User.user_permissions' clashes with reverse accessor for 'auth.User.user_permissions'.
web_1 |         HINT: Add or change a related_name argument to the definition for 'accounts.User.user_permissions' or 'auth.User.user_permissions'.
web_1 | auth.User.groups: (fields.E304) Reverse accessor 'Group.user_set' for 'auth.User.groups' clashes with reverse accessor for 'accounts.User.groups'.
web_1 |         HINT: Add or change a related_name argument to the definition for 'auth.User.groups' or 'accounts.User.groups'.
web_1 | auth.User.user_permissions: (fields.E304) Reverse accessor 'Permission.user_set' for 'auth.User.user_permissions' clashes with reverse accessor for 'accounts.User.user_permissions'.
web_1 |         HINT: Add or change a related_name argument to the definition for 'auth.User.user_permissions' or 'accounts.User.user_permissions'.
web_1 | 
web_1 | WARNINGS:
web_1 | accounts.User: (models.W042) Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'.
web_1 |         HINT: Configure the DEFAULT_AUTO_FIELD setting or the AccountsConfig.default_auto_field attribute to point to a subclass of AutoField, e.g. 'django.db.models.BigAutoField'.
web_1 | 
web_1 | System check identified 5 issues (0 silenced).

models.py

class User(AbstractUser):
    is_student = models.BooleanField(default=False)
    is_professor = models.BooleanField(default=False)

    token = models.CharField(max_length=200, blank=True)
    signup_confirmation = models.BooleanField(default=False)

class Student(models.Model):
    user                =               models.OneToOneField(User, on_delete = models.CASCADE, primary_key = True)
    first_name          =               models.CharField(max_length=100, blank=True)
    last_name           =               models.CharField(max_length=100, blank=True)
    username            =               models.CharField(max_length=30, blank=True)
    email               =               models.EmailField(max_length=140, blank=True)
    password            =               models.CharField(max_length=30, null=True)

class Professor(models.Model):
    user                =               models.OneToOneField(User, on_delete = models.CASCADE, primary_key = True)
    first_name          =               models.CharField(max_length=100, blank=True)
    last_name           =               models.CharField(max_length=100, blank=True)
    username            =               models.CharField(max_length=30, blank=True)
    email               =               models.EmailField(max_length=140, blank=True)
    date_of_birth       =               models.DateField(blank=True, default='1929-11-11')
    education           =               models.CharField(max_length=50, blank=True)
    created_at          =               models.DateTimeField(auto_now_add=True, blank=True)
    password            =               models.CharField(max_length=30, null=True)

auth_user_model и базы данных в настройках

AUTH_USER_MODEL = 'accounts.User'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'zane15',
        'USER': 'zane15',
        'PASSWORD': 'zane15',
        'HOST': 'db',
        'PORT': 5433
    }
}

Я предполагаю, что это как-то связано с портом 5433, потому что раньше я работал с 5432, а теперь я изменил его, потому что когда я запустил 5432, я получил ошибку:

Port 5432 is already in use
Usually this means that there is already a PostgreSQL server running on your Mac. If you want to run multiple servers simultaneously, use different ports.

Если вы хотите, чтобы я опубликовал что-то еще, дайте мне знать в комментариях. Спасибо за помощь:)

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