Отношения не существуют, Джанго мигрирует - PullRequest
0 голосов
/ 30 августа 2018

Я развертываю приложение django на экземпляре EC2, и у меня есть следующие модели.py:

class Profile(models.Model):

user = models.OneToOneField(User, on_delete=models.CASCADE)
foto = models.CharField(max_length=200, default="static/batman-for-

def __str__(self):
    return str(self.user.first_name) + " Profile"


@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)


@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.profile.save()

При входе в систему с использованием пользователя django я получаю следующую ошибку:

ProgrammingError at /admin/login/
relation "profiles_profile" does not exist
LINE 1: ..."."profiles_profile" FROM "profiles_...

из:

/home/ubuntu/chimpy/profiles/models.py in save_user_profile
instance.profile.save() 

Я заглянул в базу данных postgres и не могу найти таблицу с именем Profile, поэтому я думаю, что мои миграции завершились неудачно, когда я запускаю python manage.py showmigrations, который показывает:

 admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
 [X] 0009_alter_user_last_name_max_length
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
sessions
 [X] 0001_initial

но ничего о других таблицах (включая профильную). Я также хочу упомянуть, что когда я создаю суперпользователя в терминале, я получаю следующую ошибку:

django.db.utils.ProgrammingError: relation "profiles_profile" does not exist
LINE 1: INSERT INTO "profiles_profile" ("user_id", "foto", "exchange...

что я делаю не так? Спасибо.

Редактировать: мои settings.py включают в себя следующее:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'profiles',
'portfolios',
'django_extensions',
'rest_framework',
'corsheaders',
]

1 Ответ

0 голосов
/ 30 августа 2018

Глядя на вывод вашей команды showmigrations, кажется, что проблема в том, что вы не создали никаких миграций для приложения profiles.

Чтобы это исправить, запустите:

python manage.py makemigrations profiles
python manage.py migrate

В качестве альтернативы вы можете пропустить profiles из вышеприведенной команды, чтобы выполнить миграцию для всех приложений, которым они требуются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...