AttributeError at /profile/ объект 'function' не имеет атрибута 'object
Вот мой файл views.py, но я продолжаю получать эту ошибку, в чем может быть проблема. Профиль - это класс в коде models.py. если вам нужна другая часть моего кода, пожалуйста, спрашивайте
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from .forms import UserRegisterForm, UserUpdateForm, ProfileUpdateForm
def register(request):
if request.method == "POST":
form = UserRegisterForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get("username")
messages.success(request, f"Your account has been created! You are now able to login!")
return redirect("login")
else:
form = UserRegisterForm()
return render(request, 'users/register.html', {'form': form})
@login_required
def Profile(request):
profile.objects.get_or_create(user=request.user)
if request.method == "POST":
u_form = UserUpdateForm( request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
if u_form.is_valid() and p_form.is_valid():
u_form.save()
p_form.save()
messages.success(request, f"Your account has been updated!")
return redirect("profile")
else:
u_form = UserUpdateForm(instance=request.user)
p_form = ProfileUpdateForm(instance=request.user.Profile)
context = {
'u_form': u_form,
'p_form': p_form,
}
return render(request, "users/profile.html", context)
AttributeError at /profile/'function' object has no attribute 'objects' Метод запроса: GET URL запроса: http://127.0.0.1:8000/profile/. Версия Django: 2.2.8 Тип исключения: AttributeError Значение исключения: объект 'function' не имеет атрибута 'objects' Exception Location: /Users//Desktop/project/users/views.py in profile, line 20 Python Executable: /Users//.local/share/virtualenvs/project-9FFMjpiO/bin/python
Номер первой строки функции Profile
, модель Profile
вероятно не импортирована ИЛИ если импортирована с помощью profile
,
profile.objects.get_or_create(user=request.user)
означает, что вы обращаетесь к функции profile
, а не к самой модели.
Замените profile
на Profile
, а также импортируйте модель в файле views.py.