Обращение к полю 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.

Вернуться на верх