Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //save_params es la definicion del module->class_name->method_name que vas a llamar en el backend
- //El metodo del backed al cual llamas siempre va a recibir (esto mejor no cambiarlo por disenho) los siguientes parametros
- //como args va a recibir el objecto usuario de django
- //despues como kwargs va a recibir las siguientes llaves
- //qdict = que contienen los datos de tu formulario, segun se ve en el ejempplo de abajo
- //rq = que es el request de django mismo
- //files = si por ahi tu formulario tiene adjuntos
- //A continuacion esta la definicion de lo explicado arriba, osea esto seria el llamado dinamico de autentificar, tomando
- //como referencia el ejemplo:
- // response = SbLMethod(userobj=request.user,qdict=request.POST, files=request.FILES, rq=request)
- // esto esta en njo_std/views.py, esta vista no deberia ser cambiada a no ser que sea para agregar una funcionalidad standad, comun para todos los metodos.
- //La respuesta del metodo siempre debe de ser un diccionario que contenga la llave exitos en caso de que sea un resultado favorable
- //o error caso de que no
- //rsp = {'exitos': 'Guardado',}
- //Aparte de esta llave se le puede poner los datos que uno quiera, para utilizarlo en el promise de axios
- //como en el caso del ejemplo se pasa una llave llamada dtemplate
- save_params = [
- {name: 'module_name', value: 'njo_std.mng_auth'},
- {name: 'class_name', value: 'MAuth'},
- {name: 'method_name', value: 'autentificar'},
- ];
- formd = new FormData();
- //Esto utilizamos para insertar save_params en el objecto formd
- Object.keys(save_params).forEach(key => formd.append(save_params[key].name, save_params[key].value));
- //Lees tu formulario
- form_sel = '#form_algunformulario';
- ffdata = sforms.form_json(sforms.serializeform(document.querySelector(form_sel)));
- //Insertas el input del usuario en formd
- for (let idx in ffdata) {
- formd.append(idx, ffdata[idx]);
- }
- //La url deberias de pasar desde la construccion del datatables.
- //y la estructura inicial de module_name->class_name->method_name tambien
- //Esto es para tener una centralizacion del armado del Ui y no ir cambiando nada a mitad de camnino en el javascript
- //Ya en el html del formulario se puede meter nuevamente javascript de algun tipo si se necesita
- axios.post('{% url "execute_module" %}', formd).then(function (rsp) {
- response = rsp.data;
- if (response.hasOwnProperty('exitos')) {
- document.querySelector(form_sel).reset();
- toastr.success(response.exitos);
- }
- if (response.hasOwnProperty('rsp')) {
- if (response.rsp[0].hasOwnProperty('exitos')) {
- document.querySelector(form_sel).reset();
- }
- for (idx in response.rsp) {
- rspobj = response.rsp[idx];
- if (rspobj.exitos) {
- toastr.success(rspobj.exitos);
- }
- if (rspobj.error) {
- toastr.success(rspobj.error);
- }
- }
- }
- if (response.hasOwnProperty('dtemplate')) {
- view_manag.get_dinamic(response.dtemplate, response.params, response.selector);
- }
- }).catch(err => toastr.error(err));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement