@dim_nikita

Почему ошибка Django?

Надо расширить стандартную модель User. Вот модель:
class Post(AbstractUser):
    post = models.CharField(max_length=500)
    user = models.ForeignKey(User)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    user_pk  = models.IntegerField(default=0)
    user_send = models.IntegerField(default=0)

    def __str__(self):
        return str(self.created)

В settings.py написал AUTH_USER_MODEL = 'home.Post'
В админку зарегал admin.site.register(Post, UserAdmin)
Почему выдается ошибка ERRORS:
accounts.UserProfile.user: (fields.E301) Field defines a relation with the model 'auth.User', which has been swapped out.
HINT: Update the relation to point at 'settings.AUTH_USER_MODEL'.
home.Friend.current_user: (fields.E301) Field defines a relation with the model 'auth.User', which has been swapped out.
Что я делаю не так?
  • Вопрос задан
  • 1475 просмотров
Пригласить эксперта
Ответы на вопрос 1
@TechGirl
Здравствуйте) Эх вопросу два года но на всякий случай отвечу.
Я столкнулась сегодня с такой же проблемой есть два варианта:
1. Удалить базу данных и миграциия и создать заново(командой python manage.py makemigrations, python manage.py migrate), правда к сожалению в моем случае это не сработало ...
2. Заменить слово User на settings.AUTH_USER_MODEL, и не забудьте импортировать settings(from django.conf import settings)
models.py
from django.conf import settings

class Post(AbstractUser):
    post = models.CharField(max_length=500)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    user_pk  = models.IntegerField(default=0)
    user_send = models.IntegerField(default=0)

    def __str__(self):
        return str(self.created)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы