Обращение к полю ID формы в файле Views.py
Я пытаюсь отправить url записи модели по электронной почте, когда моя форма отправлена
Однако когда я ссылаюсь на form.id следующим образом
+ `'(http://localhost:8000/zipherJobCards/viewJobCard/'+form.cleaned_data['id']+')',`
Я получаю следующую ошибку
KeyError: 'id'
Есть ли какой-нибудь правильный способ ссылаться на id записи таким образом?
Посмотрите полную версию функции send_mail
здесь
def jobCard(request ):
form = jobCardForm()
if request.method == 'POST':
form = jobCardForm(request.POST)
if form.is_valid():
form.save()
send_mail(
'ZTS JOB CARD' + form.cleaned_data['jobNumber'],
'A new job card has been loaded for ' + form.cleaned_data['customerName'] + ' with a Total Cost of ' + form.cleaned_data['totalCostOfJob'] + '(http://localhost:8000/zipherJobCards/viewJobCard/'+form.cleaned_data['id']+')',
'it.zipher@gmail.com',
['it@zipher.co.za'],
fail_silently=False,
)
return redirect('home')
else:
print(form.errors)
content = {'form':form}
return render(request, 'main/jobCard.html', content)
id
(или pk
) не является частью формы, это первичный ключ, который устанавливается при сохранении объекта. Вам нужно сделать obj = form.save()
, тогда вы сможете ссылаться на сохраненный объект, например obj.id
.