Получение ошибки при заполнении формы пользовательского_профиля
Я получаю ошибку 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
.