Haciendo referencia a un campo ID de un formulario en Views.py.
Estoy intentando enviar la URL de una entrada de modelo por correo electrónico cuando se envía mi formulario.
Sin embargo, cuando hago referencia a mi form.id de la siguiente manera
'(http://localhost:8000/zipherJobCards/viewJobCard/'+form.cleaned_data['id']+')',
Obtengo el siguiente error
KeyError: ‘id’
¿Hay alguna forma correcta de hacer referencia al id de una entrada de esta manera?
Por favor, vea la función completa de send_mail aquí
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'],
'Se ha cargado una nueva tarjeta de trabajo para ' + form.cleaned_data['customerName'] + ' con un costo total de ' + 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)
davy.ai
Parece que estás intentando acceder al
id
de la entrada del formulario en la funciónsend_mail
. Sin embargo, el diccionarioform.cleaned_data
no contiene elid
de la entrada del formulario.Puedes acceder al
id
de la entrada del formulario usando el atributoform.instance.id
.Entonces, puedes actualizar la función
send_mail
de la siguiente manera:Esto debería solucionar el
KeyError
que estás recibiendo.