Как исправить Невозможно преобразовать ключевое слово «имя пользователя» в поле. Возможные варианты: id, Profile_image, ⇐ Python
Как исправить Невозможно преобразовать ключевое слово «имя пользователя» в поле. Возможные варианты: id, Profile_image,
Я новичок в Django и у меня есть академический проект. Я расширил модель пользователя, добавив в нее несколько полей, и использовал их в форме, позволяющей пользователям входить в систему. Когда я пытаюсь это сделать, это работает, но когда я отправляю форму, я получаю эту ошибку: Невозможно преобразовать ключевое слово «имя пользователя» в поле. Возможные варианты: id, Profile_image, статус, пользователь, user_id
Я знаю, что этот вопрос повторяется, но все случаи, которые я видел, не были похожи на мой.
models.py
из django.contrib.auth.models импортировать пользователя из моделей импорта django.db STATUS_CHOICES = ( («'', 'Для чего вам нужна академия?'), («студент», «студент»), («учитель», «Учитель»), («автор», «Автор»), ) Профиль класса (модели.Модель): пользователь = модели.OneToOneField(Пользователь, on_delete=models.CASCADE) Profile_image = models.ImageField(null=True, default='profile.jpg') статус = модели.CharField( максимальная_длина = 150, выбор = STATUS_CHOICES, default='Как вы используете академию?', ) USERNAME_FIELD = 'user__username' защита __str__(сам): вернуть self.user.username views.py
из рендеринга импорта django.shortcuts из django.urls импортироватьverse_lazy из django.views.generic импорт CreateView из .forms импортировать RegisterUserForm # Создайте здесь свои представления. профиль защиты (запрос): вернуть рендер( запрос, 'common/profile.html' ) класс RegisterView (CreateView): form_class = РегистрацияПользователяФормы Success_url =verse_lazy('Вход') имя_шаблона = 'регистрация/register.html' urls.py
из пути импорта django.urls, включите из django.contrib.auth.views импортировать LoginView из .forms импортировать UserLoginForm от . импортировать представления URL-паттерны = [ path('login/', LoginView.as_view(authentication_form=UserLoginForm), name='login'), путь('регистрация/',views.RegisterView.as_view(), name='register'), путь('профиль/',views.profile, name='профиль'), путь('', include('django.contrib.auth.urls')), ] register.html
{% расширяет 'base.html' %} {% загрузки i18n %} {% блокирует контент %} {% транс 'Регистрация' % {% csrf_token %} {% включает 'common/form.html' с form=form %} {% перевести "Регистрация" %} {% контента в конце блока %} Это мой репозиторий на github: https://github.com/HamzaWaleedDV/e_academy
Надеюсь на вашу помощь.
Я пробовал решения этой проблемы:
Как исправить: невозможно преобразовать ключевое слово «пользователь» в поле. Возможные варианты: описание, конечное_время, идентификатор, начальное_время, заголовок. Ошибка Django
Ошибка: невозможно преобразовать ключевое слово «id» в поле
Невозможно преобразовать ключевое слово «имя пользователя» в поле. Выбор: город, идентификатор, телефон и т. д.
Я новичок в Django и у меня есть академический проект. Я расширил модель пользователя, добавив в нее несколько полей, и использовал их в форме, позволяющей пользователям входить в систему. Когда я пытаюсь это сделать, это работает, но когда я отправляю форму, я получаю эту ошибку: Невозможно преобразовать ключевое слово «имя пользователя» в поле. Возможные варианты: id, Profile_image, статус, пользователь, user_id
Я знаю, что этот вопрос повторяется, но все случаи, которые я видел, не были похожи на мой.
models.py
из django.contrib.auth.models импортировать пользователя из моделей импорта django.db STATUS_CHOICES = ( («'', 'Для чего вам нужна академия?'), («студент», «студент»), («учитель», «Учитель»), («автор», «Автор»), ) Профиль класса (модели.Модель): пользователь = модели.OneToOneField(Пользователь, on_delete=models.CASCADE) Profile_image = models.ImageField(null=True, default='profile.jpg') статус = модели.CharField( максимальная_длина = 150, выбор = STATUS_CHOICES, default='Как вы используете академию?', ) USERNAME_FIELD = 'user__username' защита __str__(сам): вернуть self.user.username views.py
из рендеринга импорта django.shortcuts из django.urls импортироватьverse_lazy из django.views.generic импорт CreateView из .forms импортировать RegisterUserForm # Создайте здесь свои представления. профиль защиты (запрос): вернуть рендер( запрос, 'common/profile.html' ) класс RegisterView (CreateView): form_class = РегистрацияПользователяФормы Success_url =verse_lazy('Вход') имя_шаблона = 'регистрация/register.html' urls.py
из пути импорта django.urls, включите из django.contrib.auth.views импортировать LoginView из .forms импортировать UserLoginForm от . импортировать представления URL-паттерны = [ path('login/', LoginView.as_view(authentication_form=UserLoginForm), name='login'), путь('регистрация/',views.RegisterView.as_view(), name='register'), путь('профиль/',views.profile, name='профиль'), путь('', include('django.contrib.auth.urls')), ] register.html
{% расширяет 'base.html' %} {% загрузки i18n %} {% блокирует контент %} {% транс 'Регистрация' % {% csrf_token %} {% включает 'common/form.html' с form=form %} {% перевести "Регистрация" %} {% контента в конце блока %} Это мой репозиторий на github: https://github.com/HamzaWaleedDV/e_academy
Надеюсь на вашу помощь.
Я пробовал решения этой проблемы:
Как исправить: невозможно преобразовать ключевое слово «пользователь» в поле. Возможные варианты: описание, конечное_время, идентификатор, начальное_время, заголовок. Ошибка Django
Ошибка: невозможно преобразовать ключевое слово «id» в поле
Невозможно преобразовать ключевое слово «имя пользователя» в поле. Выбор: город, идентификатор, телефон и т. д.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение