Я получаю сообщение Работает ли сервер на хосте "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.
Если вы хотите, чтобы я опубликовал что-то еще, дайте мне знать в комментариях. Спасибо за помощь:)