Django.core.exceptions.FieldError: Неизвестное(ые) поле(а) (contact_number, address, user_type) указано(ы) для User

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

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

forms.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 нет таких полей, как 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)

Теперь вы можете соотнести свою точку зрения с этим

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

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