Django.core.exceptions.FieldError: неизвестные поля (номер_контакта, адрес, тип_пользователя), указанные для пользователя

как решить эту ошибку:

django.core.exceptions.FieldError: Unknown field(s) (contact_number, address, user_type) specified for User.

формы.py:

from django.contrib.auth.models import User


class UserForm(forms.ModelForm):
    class Meta:
        model=User
        fields=['first_name','last_name','address','contact_number','user_type','username','password']
        widgets = {'first_name': forms.TextInput(attrs={ 'class': 'form-control'}),
            'last_name': forms.TextInput(attrs={ 'class': 'form-control' }),
            'address': forms.Textarea(attrs={ 'class': 'form-control' }),
            'contact_number': forms.IntegerField(attrs={ 'class': 'form-control' }),
            'user_type': forms.Select(attrs={ 'class': 'form-control' }),
            'username': forms.TextInput(attrs={ 'class': 'form-control' }), 
            'password': forms.PasswordInput(attrs={ 'class': 'form-control' })
      }

У меня возникают трудности, пожалуйста, скажите мне, что делать.

Пользовательская модель Django не имеет полей с именами contact_number, address и user_type, отсюда и ошибка. Где вы ожидаете, что эти поля будут определены? Если вы используете пользовательскую модель пользователя, вам необходимо следовать инструкции по настройке Django.

solarissmoke 23.04.2022 07:38

так что я не могу добавить туда дополнительные поля?

Manoj Tolagekar 23.04.2022 07:42

Дополнительные поля должны быть определены за пределами Meta class. Если вам нужно добавить дополнительные поля в модель User, вам нужно сделать это в первую очередь.

Avishka Dambawinna 23.04.2022 07:47

пожалуйста, скажите мне, как это сделать

Manoj Tolagekar 23.04.2022 07:47
Как расширить модель пользователя Django? учебник для начинающих. Обратитесь к документу для более глубокого понимания.
Avishka Dambawinna 23.04.2022 07:50
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
2
5
25
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Встроенная модель пользователя Django не имеет таких полей, как address , user_type , contact_number

Поэтому вы можете создать пользовательскую модель с именем profile или как-то еще:

from django.db import models 
from django.contrib.auth.models import User

Class Profile(models.Model):
    parent=models.OneToOneField(User,on_delete=models.CASCADE) 
    contact=models.CharField(max_length=100)
    address=models.CharField(max_length=300)

Теперь вы можете связать свое мнение с этим

Это просто способ расширения модели пользователя в django. На официальном сайте django также есть разные способы. https://docs.djangoproject.com/en/4.0/topics/auth/customizing/#extending-user

Другие вопросы по теме