Вы получаете cleaned_data
из класса ProductForm
, а не из объекта form
, который является экземпляром из ProductForm
.
Таким образом, вы можете исправить это, используя вместо этого form
, например:
def home_view(request,slug,*args,**kwargs):
form= ProductForm(request.POST or None)
try:
productobject=Product.objects.get(id=1)
except Product.DoesNotExist:
raise Http404
if form.is_valid():
newProduct=Product.objects.create(
title = "jose",
description=<b>form</b>.cleaned_data.get["description"]
)
if newProduct:
return HttpResponseRedirect("/")
else:
newProduct = ProductForm()
context= {
"sampletext": "text",
"form": form,
"productobject":productobject,
}
return render(request, "home.html",context)
Но, как говорится, рабочий процесс не является идиоматическим . Например, if newProduct
всегда будет успешным, независимо от того, является ли это действительным newProduct
или нет. Однако Product.objects.create(..)
может вызвать исключение. Более идиоматический рабочий процесс:
def home_view(request,slug,*args,**kwargs):
try:
productobject=Product.objects.get(id=1)
except Product.DoesNotExist:
raise Http404
if request.method = 'POST':
form = ProductForm(request.POST)
if form.is_valid():
form.instance.title = "jose"
form.save()
return redirect('home') # name of the view
else:
form = ProductForm()
context= {
"sampletext": "text",
"form": form,
"productobject":productobject,
}
return render(request, "home.html",context)