Heroku не распознает пользователей

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

На моей локальной версии: Пользователи, которые зарегистрировались, могут оставить комментарий через форму. При обращении к форме пользователь может выбрать свое имя из выпадающего списка и оставить комментарий к определенному товару.

В версии для Heroku: пользователи, зарегистрированные в приложении, не отображаются в форме комментариев. Список пуст.

Я с удовольствием размещу некоторый код, но не уверен с чего начать и в итоге скопирую/вставлю большой кусок кода.

Я сделал что-то неправильно при загрузке?

Опять же, локальная версия работает совершенно нормально. Таким образом, это должно быть связано с переносом с Local на Heroku

Есть указатели?

Я подозреваю, что проблема заключается в вашем классе User, который вы определяете в файле models.py. Класс User уже есть в django.contrib.auth.models, и вы уже импортируете его в этот файл. Когда вы создаете своего собственного пользователя в Models.py, вы упускаете все встроенные в django User вещи, потому что они, фактически, являются отдельными классами. Так что я подозреваю, что попытка использовать эти классы как взаимозаменяемые приводит к неправильной работе.

Существует несколько способов работы с пользователями.

  1. Просто используйте django User. Если вам нужны только поля и методы здесь, вам не нужно определять свой собственный класс. Просто импортируйте его там, где он вам нужен, и он готов к работе. Из того, что я видел выше, это лучший вариант для вас на данный момент.

  2. Если вы думаете, что вам могут понадобиться дополнительные поля в будущем, или вы захотите аутентифицироваться по полю email, а не по имени пользователя, или вообще изменить или расширить поведение пользователя по умолчанию, вы можете либо создать модель с полем отношения один к одному с Django User, или (как рекомендуется в документации) вы можете создать CustomUser, который наследуется от AbstractUser и определить ваши дополнительные поля в этой модели.

  3. Создайте модель с нуля, наследуя от CustomBaseUser (гораздо сложнее)

    .

NB:Не рекомендуется наследоваться от стандартного Django User или расширять его. CustomUser, наследующий от AbstractUser, создан для того, чтобы иметь все, что делает Django User, и не будет ломать ничего другого, если вы его расширите.

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