#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, когда пользователь обновляет
браузер.