get_object_or_404 не определено

#python #django

#питон #django

Вопрос:

Я пытаюсь обновить свою модель профиля некоторыми данными, которые я получаю из формы, но я получаю эту ошибку

 name 'get_object_or_404' is not defined
  

Вот мой код для представления (на данный момент он довольно простой)

 from django.shortcuts import render
from django.contrib import messages
from django.contrib.auth.models import User
from users import models
from users.models import Profile
from .forms import WeightForm
# Create your views here.
def home(request):
    profile = get_object_or_404(pk=id)
    form = WeightForm(request.POST, instance=profile)
    if form.is_valid():
       form.save

return render(request, 'Landing/index.html',{'form':form})
  

Ответ №1:

Вам нужно импортировать его. Кроме того, в get_object_or_404(…) [Django-doc] сначала указывается класс модели или набор запросов, поэтому в этом случае get_object_or_404(Profile, …) :

 from django.shortcuts import get_object_or_404

def home(request):
    profile = get_object_or_404(Profile, pk=id)
    form = WeightForm(request.POST, instance=profile)
    if form.is_valid():
       form.save()
    return render(request, 'Landing/index.html',{'form':form})  

Примечание: В случае успешного запроса POST вам следует выполнить redirect [Django-doc]
для реализации шаблона [wiki], который позволяет перенаправлять /получать.,,..
Это позволяет избежать того, что вы делаете тот же запрос POST, когда пользователь обновляет
браузер.