I've done the HTML as well as the pdf blank file for my web framework, but when it comes to the submission POST, I cannot seem to get it to work. Its supposed that once you press the submit it will save the user input to the blank pdf created, to later through a button (which is already created and functional, but downloads blank) download a pdf with the users inputed data. PDF should have the input data
Home1.html
{% extends "users/base.html" %} {% block title%} Home2 {%endblock title%}
{%block Formulario%}
<form id="form" method='post'>
{%csrf_token%}
<div >
<label for="fecha" id="label-fecha"> Fecha </label>
<input type="date" id="date" placeholder="Ingrese fecha" />
</div>
<div >
<label for="Cargo Actual" id="label-Cargo Actual"
>Su cargo actual</label
>
<input type="text" id="cargo" placeholder="Ingrese Cargo" />
</div>
<div >
<label for="Lugar y Fecha de Nacimiento" id="label-F/L nac"
>Lugar y fecha de Nacimiento</label
>
<input type="text" id="FLNac" />
</div>
<div >
<label for="Discapacidad" id="label-Disc">Grado de discapacidad</label>
<input type"text" id='discapacidad' placeholder='En caso de tener
discapacidad ingrese el grado,caso contrario deje vacio '>
</div>
<div >
<label for="edad" id="label-edad"> Edad: </label>
<input type="text" id="edad" placeholder="Ingrese edad" />
</div>
<div >
<label for="tipo_sangre" id="label-tipo_sangre">Tipo de Sangre:</label>
<input type
="text"
id="tipo_sangre"
placeholder="Ingrese tipo de sangre"
/>
</div>
<div >
<label for="Estatura" id="label-Estatura"> Estatura: </label>
<input
type="number"
id="Estatura"
placeholder="Ingrese su estatura"
step=".01"
/>
</div>
<div >
<label for="Direccion_Domicilio" id="label-Direccion"
>Direccion Domicilio Actual</label
>
<input type="text" id="Domicilio" placeholder="Ingrese su Direccion" />
</div>
<div >
<label for="Manzana" id="label-Manzana"> Manzana: </label>
<input type="text" id="Manzana" placeholder="Ingrese Manzana" />
</div>
<div >
<label for="Villa" id="label-Villa"> Villa: </label>
<input type="text" id="villa" placeholder="Ingrese villa" />
</div>
<div >
<label for="Parroquia" id="label-Parroquia"> Parroquia </label>
<input type"text" id='Parroquia' placeholder="Ingrese Parroquia">
</div>
<div >
<label for="telefonoD" id="label-telefonoD"> Telefono Domicilio </label>
<input
type="text"
id="tel_domicilio"
placeholder="Ingrese telefono domicilio"
/>
</div>
<div >
<label for="telefonoC" id="label-telefonoC"> Telefono Celular </label>
<input
type="text"
id="tel_personal"
placeholder="Ingrese telefono celular"
/>
</div>
<div >
<label for="telefonoF" id="label-telefonoF">Telefono Familiar </label>
<input
type="text"
id="tel_familiar"
placeholder="Ingrese telefono familiar"
/>
</div>
<div >
<label for="Cedula" id="label-cedula"> Cedula de Identidad: </label>
<input type="number" id ="cedula" placeholder="Ingrese su cedula">
</div>
<div >
<label for="Estado_Civil" id="label-Estado_Civil">
Cual es su Estado Civil actual
</label>
<select name="Estado_Civil" id="Estado_Civil">
<option value="Soltero(a)">Soltero</option>
<option value="Union_Libre">Union Libre</option>
<option value="Casado">Casado</option>
<option value="Viudo">Viudo</option>
<option value="Divorciado">Divorciado</option>
</select>
</div>
<h2> Informacion del Conyuge o Esposo </h2>
<small> En el caso de no tener Conyuge o Esposo/a dejar vacio <small>
<div >
<label for='NCE' id="label-NCE"> Nombre Completo del conyuge o Esposo/a</label>
<input type='text' id='NCE' placeholder="Ingrese el nombre respectivo">
</div>
<div class='form-control'>
<label for='Direccion_DomicilioNCE' id="label-Direccion_DomicilioNCE"> Direccion Domiciliaria: </label>
<input type="text" id='DDNCE' placeholder="Ingrese Direccion Domiciliaria">
</div>
<div class ='form-control'>
<label for='Num_C/E ' id='label-NumC/E'> Telefono:</label>
<input type="number" id="Num_C/E" placeholder="Ingrese telefono">
</div>
<div >
<label for='ced_C/E' id="label-ced_C/E"> Cedula de Identidad:</label>
<input type="number" id="ced_C/E" placeholder="Ingrese Cedula">
</div>
<div class='form-control'>
<label for="Fecha_NacC/E" id="label-NacC/E"> Fecha de Nacimiento: </label>
<input type="date" id="Fecha_NacC/E" placeholder="Ingrese fecha de Nacimiento">
</div>
<div class='form-control'>
<label for="Lug_TrabajoC/E" id="label-Lug_TrabajoC/E"> Lugar y Direccion de Trabajo: </label>
<input type="text" id="Lug_TrabajoC/E" placeholder="Ingrese Lugar y Direccion del trabajo">
</div>
<div >
<label for="tel_trabajoC/E" id="label-tel_trabajoC/E"> Telefono del Trabajo </label>
<input type="text" id="tel_trabajoC/E" placeholder='Ingrese telefono'>
</div>
<h2>Informacion de los Hijos</h2>
<font size='-0'> En caso de no tener hijos dejar vacio </font>
<h4> Hijo 1: </h4>
<div class='form-control'>
<label for='kid1' id='label-kid1'> Nombre hijo/a: </label>
<input type='text' id='kid1' placeholder="Nombre del hijo">
</div>
<div class='form-control'>
<label for='F/LK1' id='label-F/LK1'> Fecha y Lugar de nacimiento: </label>
<input type='text' id='K1FL' placeholder="Nombre del hijo">
</div>
<div class= "form-control">
<label for="Edadk1" id='label-Edadk1'> Edad: </label >
<input type='text' id="AgeK1" placeholder='Ingrese edad'>
</div>
<div class='form-control'>
<label for='Ced/Ciud' id='label-Ced/Ciud'> Cedula/Ciudadania: </label>
<input type='text' id= 'Ced/CiudK1' placeholder='Ingrese Cedula'>
</div>
<div class='form-control'>
<label for="Direccion" id="label-Direccion_Hijos"> Direccion Domiciliaria </label>
<input type='text' id='direccionHijo1'placeholder='Ingrese Direccion'>
</div>
<h4> Hijo 2: </h4>
<div class='form-control'>
<label for='kid2' id='label-kid2'> Nombre hijo/a: </label>
<input type='text' id='kid2' placeholder="Nombre del hijo">
</div>
<div class='form-control'>
<label for='F/LK2' id='label-F/LK2'> Fecha y Lugar de nacimiento: </label>
<input type='text' id='K2FL' placeholder="Nombre del hijo">
</div>
<div class= "form-control">
<label for="Edadk2" id='label-Edadk2'> Edad: </label >
<input type='text' id="AgeK2" placeholder='Ingrese edad'>
</div>
<div class='form-control'>
<label for='Ced/Ciud' id='label-Ced/Ciud'> Cedula/Ciudadania: </label>
<input type='text' id= 'Ced/CiudK2' placeholder='Ingrese Cedula'>
</div>
<div class='form-control'>
<label for="Direccion" id="label-Direccion_Hijos"> Direccion Domiciliaria </label>
<input type='text' id='direccionHijo2'placeholder='Ingrese Direccion'>
</div>
<h4> Hijo 3: </h4>
<div class='form-control'>
<label for='kid3' id='label-kid3'> Nombre hijo/a: </label>
<input type='text' id='kid3' placeholder="Nombre del hijo">
</div>
<div class='form-control'>
<label for='F/LK3' id='label-F/LK3'> Fecha y Lugar de nacimiento: </label>
<input type='text' id='K3FL' placeholder="Nombre del hijo">
</div>
<div class= "form-control">
<label for="Edadk3" id='label-Edadk3'> Edad: </label >
<input type='text' id="AgeK3" placeholder='Ingrese edad'>
</div>
<div class='form-control'>
<label for='Ced/Ciud' id='label-Ced/Ciud'> Cedula/Ciudadania: </label>
<input type='text' id= 'Ced/CiudK3' placeholder='Ingrese Cedula'>
</div>
<div class='form-control'>
<label for="Direccion" id="label-Direccion_Hijos"> Direccion Domiciliaria </label>
<input type='text' id='direccionHijo3'placeholder='Ingrese Direccion'>
</div>
<h4> Hijo 4: </h4>
<div class='form-control'>
<label for='kid4' id='label-kid4'> Nombre hijo/a: </label>
<input type='text' id='kid4' placeholder="Nombre del hijo">
</div>
<div class='form-control'>
<label for='F/LK4' id='label-F/LK4'> Fecha y Lugar de nacimiento: </label>
<input type='text' id='K4FL' placeholder="Nombre del hijo">
</div>
<div class= "form-control">
<label for="Edadk4" id='label-Edadk4'> Edad: </label >
<input type='text' id="AgeK4" placeholder='Ingrese edad'>
</div>
<div class='form-control'>
<label for='Ced/Ciud' id='label-Ced/Ciud'> Cedula/Ciudadania: </label>
<input type='text' id= 'Ced/CiudK4' placeholder='Ingrese Cedula'>
</div>
<div class='form-control'>
<label for="Direccion" id="label-Direccion_Hijos"> Direccion Domiciliaria </label>
<input type='text' id='direccionHijo4'placeholder='Ingrese Direccion'>
</div>
<h2> Familiares con Discapacidad </h2>
<div class='form-control'>
<label for='inp-1'>
<input type='checkbox' name='inp'> Tiene esposo/a con discapacidad </input></label>
<label for='inp-2'>
<input type="checkbox" name='inp'> Tiene hijos/as con discapacidad </input></label>
</div>
<h2>Informacion de Familiares </h2>
<font size='-0'> "Padres y hermanos" </font>
<div class='form-control'>
<label for="ApellidosNom" id="label-ApellidosNom"> Apellidos Y Nombres </label>
<input type="text" id="AyNFam" placeholder="Ingrese Nombres">
<input type="text" id="AyNFam2" placeholder="Ingrese Nombres">
<input type="text" id="AyNFam3" placeholder="Ingrese Nombres">
</div>
<div class='form-control'>
<label for="telefonoFam" id="label-telefonoFam"> Telefono </label>
<input type="text" id="telefonoFam" placeholder="Ingrese Telefono">
<input type="text" id="telefonoFam" placeholder="Ingrese Telefono">
<input type="text" id="telefonoFam" placeholder="Ingrese Telefono">
</div>
<div class='form-control'>
<label for="FNFam" id="label-FNFam"> Fecha de Nacimiento </label>
<input type="text" id="FNFam" placeholder="Ingrese fecha de Nacimiento">
<input type="text" id="FNFam" placeholder="Ingrese fecha de Nacimiento">
<input type="text" id="FNFam" placeholder="Ingrese fecha de Nacimiento">
</div>
<div class='form-control'>
<label for="RelacionFam" id="label-RelacionFam"> Relacion de Parentesco </label>
<input type="text" id="RelacionFam" placeholder="Ingrese Relacion">
<input type="text" id="RelacionFam" placeholder="Ingrese Relacion">
<input type="text" id="RelacionFam" placeholder="Ingrese Relacion">
</div>
<div class='form-control'>
<label for="DireccionFam" id="label-DireccionFam"> Direccion Domiciliaria</label>
<input type="text" id="DireccionFam" placeholder="Ingrese Direccion">
<input type="text" id="DireccionFam" placeholder="Ingrese Direccion">
<input type="text" id="DireccionFam" placeholder="Ingrese Direccion">
</div>
<div >
<label for="inp-3"> Trabajan en esta empresa familiares?
<input type="checkbox" name="inp">Si </input>
<input type="checkbox" name="inp">No </input>
</label>
</div>
<div >
<label for="inp-3"> Trabajan en esta empresa amistades?
<input type="checkbox" name="inp">Si </input>
<input type="checkbox" name="inp">No </input>
</label>
</div>
<h2> Referencias Personales </h2>
<font size='-0'> Dos diferentes a Familiares </font>
<div >
<label for='Ap_NomRP' id="label-Ap_NomRP"> Nombres y Apellidos</label>
<input type='text' id='Ap_NomRP' placeholder="Ingrese el nombre ">
<input type='text' id="Ap_NomRP2" placeholder="Ingrese el nombre">
</div>
<div class='form-control'>
<label for='Direccion_DomicilioRP' id="label-Direccion_DomicilioRp"> Direccion Domiciliaria: </label>
<input type="text" id='DDRP' placeholder="Ingrese Direccion Domiciliaria">
<input type="text" id='DDRP2' placeholder="Ingrese Direccion Domiciliaria">
</div>
<div class ='form-control'>
<label for='Num_RP ' id='label-NumRP'> Telefono:</label>
<input type="number" id="Num_RP" placeholder="Ingrese telefono">
<input type="number" id="Num_RP2" placeholder="Ingrese telefono">
</div>
<div class='form-control'>
<label for='OcupacionRP' id='label-OcupacionRP'> Ocupacion </label>
<input type='text' id="OcupacionRP1" placeholder="Ingrese Ocupacion">
<input type='text' id="OcupacionRP2" placeholder="Ingrese Ocupacion">
</div>
<h2> Experiencia Laboral</h2>
<font size='-0'> Si tiene menos de tres años en la empresa </font>
<div class='form-control'>
<label for="nombreEmpresa" id="label-nombreEmpresa"> Nombre de la Empresa </label>
<input type='text' id='NombreEmp' placeholder='Ingrese nombre de la empresa'>
</div>
<div class='form-control'>
<label for='DireccionEmp' id="label-DireccionEmp"> Direccion </label>
<input type="text" id='DireccionEmp' placeholder="Ingrese Direccion">
</div>
<div class='form-control'>
<label for="telefonoEmp" id='label-telefonoEmp'> telefono </label>
<input type='number' id="telefonoEmp" placeholder="Ingrese telefono">
</div>
<div >
<label for='fechaIng' id='label-fechaIng'> Fecha Ingreso: </label>
<input type='date' id='fechaIng'>
</div>
<div class='form-control'>
<label for="fechaSal" id="label-FechaSal"> Fecha Salida: </label>
<input type="date" id ='fechaSal'>
</div>
<div class='form-control'>
<label for="SueldoF" id="label-SueldoFin"> Sueldo Final </label>
<input type="text" id="SueldoFin" placeholder="Ingrese sueldo">
</div>
<div >
<label for="UltCargo" id="label-UltCargo"> Ultimo Cargo que desempeno</label>
<input type="text" id="UltCargo" placeholder="Ingrese su ultimo cargo">
</div>
<div >
<label for="TiempoServ" id="label-TiempoSev"> Tiempo de Servicio </label>
<input type="text" id="TiempoServ" placeholder="Ingrese el tiempo que estuvo en la empresa">
</div>
<div >
<label for="JefeInm" id="label-JefeInm"> Nombre de su Jefe Inmediato</label>
<input type="text" id="JefeInm" placeholder="Ingrese el nombre de su jefe">
</div>
<div >
<label for="NombreEmpr"id="label-nombreEmpr"> Nombre de la Empresa</label>
<input type="text" id="NombreEmpr" placeholder="Ingrese el nombre de la Empresa">
</div>
<div >
<label for="DireccionEmp" id="label-DirEmpr"> Direccion: </label>
<input type="text" id="DireccionEmpr" placeholder="Ingrese direccion">
</div>
<h2> Referencias Socioeconomicas </h2>
<div >
<label for="inp-4"> Posee Vehiculo <small> Moto o Automovil </small> </label>
<input type="checkbox" name="inp"> Si </input>
<input type="checkbox" name="inp"> No </input>
</div>
<div >
<label for="ModeloV" id="label-Modelo"> Modelo </label>
<input type="text" id="ModeloV" placeholder="Ingrese Modelo">
</div>
<div >
<label for="MarcaV" id="label-MarcaV"> Marca </label>
<input type="text" id="MarcaV" placeholder="Ingrese Marca">
</div>
<div >
<label for="PlacaV" id="label-Placa"> Placa </label>
<input type="text" id="PlacaV" placeholder="Ingrese Placa">
</div>
<div >
<label for="AñoV" id="label-Anio"> Año </label>
<input type="text" id="Anio" placeholder="Ingrese Año">
</div>
<div >
<label for="ColorV" id="label-ColorV"> Color </label>
<input type="text" id="ColorV" placeholder="Ingrese Color">
</div>
<div >
<label for="Vivienda" id="label-Vivienda">
Su vivienda actual es:
</label>
<select name="vivienda" id="Vivienda">
<option value="Propia">Propia</option>
<option value="Alquilada">Alquilada</option>
<option value="Familiar">Familiar</option>
</select>
</div>
<div >
<label for="TipoVivienda" id="label-TipoVivienda">
Tipo de Vivienda:
</label>
<select name="TVivienda" id="TipoVivienda">
<option value="Hormigon">Hormigon</option>
<option value="Mixta"> Mixta</option>
<option value="Madera">Madera</option>
</select>
<div >
<label for="inp-4"> Posee Terreno </label>
<input type="checkbox" name="inp"> Si </input>
<input type="checkbox" name="inp"> No </input>
</div>
</div>
<button type="submit" value="submit">
Submit
</button>
</form>
<style>
body{
background-color: #05c4c4;
font-family: Verdana;
text-align:center;
}
form{
background-color:fff;
max-width:100px
margin= 10px auto;
padding=30px 20px;
box-shadow:2px 5px 10px rgba(0,0,0,0.5);
}
.form-control {
text-align: left;
margin-bottom: 25px;
}
.form-control label {
display: block;
margin-bottom: 10px;
}
.form-control input,
.form-control select,
.form-control textarea {
border: 1px solid #777;
border-radius: 2px;
font-family: inherit;
padding: 10px;
display: block;
width: 95%;
}
.form-control input[type="radio"],
.form-control input[type="checkbox"] {
display: inline-block;
width: auto;
}
button {
background-color: #05c4c4;
border: 1px solid #777;
border-radius: 2px;
font-family: inherit;
font-size: 21px;
display: block;
width: 100%;
margin-top: 50px;
margin-bottom: 20px;
}
h4 {
background-color: #05c4c4;
font-family: Verdana;
text-align:left;
margin: 10px
}
</style>
{% endblock Formulario%}
views.py
def home2_pdf(request):
if request.method =="POST":
buf = io.BytesIO()
c = canvas.Canvas(buf, pagesize = letter, bottomup=0)
textob =c .beginText()
textob.setTextOrigin(inch,inch)
textob.setFont("Helvetica", 14)
lines =[
]
for line in lines:
textob.textLine(line)
c.drawText(textob)
c.showPage()
c.save()
buf.seek(0)
return FileResponse(buf, as_attachment=True, filename="formulario.pdf")
urls.py snip
path('home2_pdf', home2_pdf, name='home2_pdf'),
CodePudding user response:
In your views.py
you are not adding any lines to your PDF
lines =[
]
for line in lines:
textob.textLine(line)
You have to use the request.POST
data to construct the lines you like to have in your PDF file.
We can't help you any further, as we do not know what the lines should be you like to have in your PDF.
CodePudding user response:
Looking at your html form does not have name attributes, not sure how you going to access those input in the request.POST, I'm giving the solution while assuming that your input have the name attribute, you could have listed your posted data that empty lines in your view.py
list like this
lines = [
request.POST['fecha'],
request.POST['cargo'],
]