Mostrar datos en un formulario (inputs) en un template.

634 views
Skip to first unread message

tatiana...@gmail.com

unread,
Apr 25, 2019, 10:08:48 AM4/25/19
to Django users
Buen día,

Vengo trabajando con un formulario en html que captura los datos mediante AJAX y los guarda en una base de datos postgres.

Ahora quiero realizar un update, en ese mismo formulario,

De que manera puedo mostrar los datos que guarde en la base de datos, en los inputs del formulario, para decidir si quiero dejar esos datos o quiero actualizarlos.


Agradezco mucho sus soluciones.


Este es mi formulario en el que guardo inicialmente


<form class="post">{%csrf_token%}
<div class="articleunique">
<input type="" class="id_articulo" name="id_articulo"  value="{{ article.id }}">
</div>
<p>Tags</p>
<input  type='text' id="flex"
placeholder='Write your tags'
class='flexdatalist data_tags'
params='["name"]',
data-search-in='name'
data-visible-properties='["name"]'
data-selection-required='true'
data-value-property='id'
data-min-length='2'
multiple='multiple'
name='country_id_multiple' required>
<div class="post-form"><br>
<p>Tono</p>
<select  class="form-control Tono"  style="">
<option selected></option>
{% for t in tones %}
<option  value="{{ t }}">
{{ t.nombre }}
</option>
{% endfor %}
</select>
</div><br><br>
<div class="post-form">
<p>Tema</p>
<div class="nuevo">
<!-- Tercer input temas que se crea con la function de Javascript -->
<div class="miDiv"></div>
<button class="btn btn-warning añadir_tema">Añadir Tema</button>
</div>
<br>
<br>
<div class="btn_seccion1">
<input type="button"  value="Guardar"class=" btn_save btn btn-danger guardar" style="width: 150px">
</div>
<br><br>
</div>
</form>

Gil Obradors

unread,
Apr 25, 2019, 10:44:32 AM4/25/19
to django...@googlegroups.com
Buenas,

Un update, en caso que los datos ya existen quizas? Sino no lo entiendo?







El dj., 25 d’abr. 2019, 16:09, <tatiana...@gmail.com> va escriure:
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/202a9a2b-e6da-49ff-83ec-d884e994b5a9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Tatiana Mesa

unread,
Apr 25, 2019, 11:39:50 AM4/25/19
to django...@googlegroups.com
Hola,

1.tengo un formulario donde inicialmente lo lleno y guardo unos datos en la base.
2. hago una consulta para traer esos registros de la base de datos.
3. Ahora quiero que en ese mismo formulario, en el inicial, se muestren esos datos que guarde en un principio.

para hacer un tipo de update, pero sobre ese mismo formulario, es como si el usuario viera lo que guardo en un principio y pueda decidir si quiere cambiarlo o no

Ing.Daniel Bojorge

unread,
Apr 25, 2019, 11:48:53 AM4/25/19
to django...@googlegroups.com
Cuando te refieres al inicial, es cuando se cargue el formulario?  Disculpa no entiendo bien tu consulta.



Mi Blog
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)



Gil Obradors

unread,
Apr 25, 2019, 12:04:39 PM4/25/19
to django...@googlegroups.com
No se si es la mejor solución, pero para salir del paso yo haría:


-Antes de cargar el formulario, analizar si el usuario tiene alguna entrada ya en db.
-En caso afirmativo al rendarizar el template pasaría un diccionario/lista de los datos
-Dentro de la plantilla haria una evaluación {% if datosformulario %} , de esa forma des de la plantilla podrías conocer si hay datos previos o no, y en caso afirmativo, sea por html o por javascript rellenar el formulario con los valores anteriores des de la mizma plantilla.

Que te parece? Seria una versión simple.
Con ajax también lo podrías hacer, seria lo mismo sin trabajar con el template de django. Debe valorarse que mas conviene, para mi intentaría trabajar el mínimo el navegador  y mas el servidor, pero puede ser limitante en algunas ocasiones



Saludos !



Missatge de Ing.Daniel Bojorge <debs....@gmail.com> del dia dj., 25 d’abr. 2019 a les 17:48:

Tatiana Mesa

unread,
Apr 25, 2019, 12:07:24 PM4/25/19
to django...@googlegroups.com
Hola Daniel,

no te preocupes, quizás no he sido clara


el formulario incial es donde guardamos los datos por primera vez, ahora quiero actualizar esos datos que guarde por primera vez,
los quiero actualizar en el mismo formulario, pero viendo los datos en guarde en los inputs.



Tatiana Mesa

unread,
Apr 25, 2019, 12:35:30 PM4/25/19
to django...@googlegroups.com
Hola Daniel,

es exactamente lo que quiero y es mas capturo los datos mediante AJAX,

Pero aun no entiendo bien este ultimo paso

"de esa forma des de la plantilla podrías conocer si hay datos previos o no, y en caso afirmativo, sea por html o por javascript rellenar el formulario con los valores anteriores des de la mizma plantilla."

ya se como mostrarlos, pero no tengo muy claro si el usuario quieres cambiar el valor, tambien van alli los otros datos?

me facilitarías un ejemplo por favor.


Agradezco mucho tu ayuda.





Gil Obradors

unread,
Apr 25, 2019, 12:52:07 PM4/25/19
to django...@googlegroups.com
Si haces un paste de la vista, te doy 4 pistas de como lo haria yo, però en funcion de lo que ya tengas.

Sino a vote pronto yo algo parecido como:

def vistaformulario(request):
    if request.POST:
        #SI LLEGAMOS A ESE PUNTO, ES PORQUE EL USUARIO QUIRE ACTUALIZAR LOS DATOS DEL FORMULARIO
        #Cargar valores del formulario
        nombre = request.POST['nombre']
        dato = request.POST['dato']
        ...
        
        entradaDB = modeloenladb()
        entradaDB.nombre = nombre
        ...
        ...
        entradaDB.save()
        return HttpResponseRedirect('donde queiras re-enviarlo')
    else:
        # Aqui el usuario esta consultando el fomulario, deberian cargarse los datos si ya existein, o en caso de que no existan, formulario en blanco
        
        template = loader.get_template('fichero template')
        return HttpResponse(template.render(datos para importar al template, request))

Que te parece?


Yo lo cargaria con formulario y POST, no con ajax. Pero si sabes hacer post con ajax, da igual https://www.w3schools.com/jquERY/jquery_ajax_get_post.asp

Saludos



Missatge de Tatiana Mesa <tatiana...@gmail.com> del dia dj., 25 d’abr. 2019 a les 18:35:

Victor H. Velasquez Rizo

unread,
Apr 25, 2019, 3:39:21 PM4/25/19
to django...@googlegroups.com
Hola Tatiana.
Vira este tutorial en que te guian para que hagas las operaciones basicas de CRUD (Create, Read, Update, Delete)


Saludos !


For more options, visit https://groups.google.com/d/optout.


--



Atte...,.
Vìctor Hugo Velàsquez Rizo
Cali - Colombia

Manuel Alejandro Garrido Gongora

unread,
Apr 26, 2019, 12:33:06 AM4/26/19
to django...@googlegroups.com
Si estas usando ajax lo que puedes hacer es instalarte django rest framework o crearte una vista que cuando sea get te retorne los datos de la db y cuando sea post los actualice y puedes llamarla desde ajax una primera vez cuando se ejecuta el formulario para rellenarlo y luego cada vez que se hace submit hacer un preventdfault y llamar a la vista por ajax con un método post y si es exitoso llamar con uk get para actualizar el form. 

Saludos.

Enviado desde mi iPhone
Reply all
Reply to author
Forward
0 new messages