Получение ошибки при заполнении формы пользовательского_профиля

Я получаю ошибку user_profile() got an unexpected keyword argument 'phoneNumber' Использую метод post и пытаюсь отправить данные в базу данных, но получаю эту ошибку.

model.py

class user_profile(models.Model):
 user=models.ForeignKey(User, on_delete=models.CASCADE)
 phoneNumber=models.CharField( max_length=12, blank=True)
 name=models.CharField(max_length=100, blank=True)
 address=models.CharField(max_length=500,blank=True)

user_profile.html

 {% extends 'firmApp/basic.html'%}
 {% block body%}
 <div class="row">
 <div class="col-md-4">
    <form action="/user_profile/" method="post" >{% csrf_token %}
        <div class="mb-3">
          <label for="name" class="form-label">Full-Name</label>
          <input type="text" class="form-control" name="Name" >
          <div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
        </div>
        <div class="mb-3">
          <label for="address" class="form-label">Address</label>
          <input type="text" class="form-control" name="address">
        </div>

        <div class="mb-3">
            <label for="phoneNumber" class="form-label">Contact Number</label>
            <input type="text" class="form-control" name="phoneNumber">
          </div>

        <div class="mb-3">
            <label for="formFile" class="form-label">select image</label>
            <input class="form-control" type="file" name="formFile">
          </div>
    
        
        <button type="submit" class="btn btn-primary">Submit</button>
    </form>
</div>
{%endblock%}

views.py

def  user_profile(request):
if request.method=="POST":
    phoneNumber=request.POST.get('phoneNumber')
    name=request.POST.get('Name')
    address=request.POST.get('address')
    user=request.user
    print(user)
    profile=user_profile(phoneNumber=phoneNumber, name=name, address=address,user=user)
    profile.save()
return render(request, "firmApp/blog/user_profile.html")     

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

user_profile() got an unexpected keyword argument 'phoneNomber'

У вас несовпадение имен - и представление, и модель называются user_profile. Когда вы пытаетесь создать модель в вашем представлении, python на самом деле вызывает представление вместо модели. Функция представления не ожидает получить аргумент phoneNumber, отсюда и ошибка. Вам просто нужно изменить одно из имен на что-то другое.

Это потому, что ваше представление и модель имеют одинаковые имена, и поскольку вы вызываете user_profile из представления, оно вызывает неправильное user_profile. Вам следует переименовать один из них, чтобы иметь разные имена и решить вашу ошибку.

В соответствии с соглашениями, имена классов должны записываться как UserProfile.

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