Django - Acceder a mi data con javascript o jquery

 
Vista:
sin imagen de perfil

Acceder a mi data con javascript o jquery

Publicado por iván (1 intervención) el 10/12/2022 09:55:42
Hola tengo una duda que no se como hacer. Estoy en una vista de detalle de un modelo llamado Alumno, al darle a un boton me voy a otra vista create de otro modelo llamado Recibo, en boton tiene un función AJAX, con una petición en este caso GET, que le paso una acción y el id del Alumno.
Cuando intento recoger en la vista la petición en el contect data con una función al tener que procesar 2 GET, el de cambio de la url y el de la funcion pues siempre me sale vacío la data, cuando lo rescato en js.
Pongo el código.
Este es la funcion simple que está en un js de la vista Alumno
1
2
3
4
5
6
7
8
9
10
11
function pagar_recibo(id) {
    $.ajax ({
        delay: 250,
        type: 'POST',
        url: '/general/recibo/add',
        data: {
            'id': id,
            'action_al': 'add_alumnos',
        },
    });
};
Luego en la vista create de Recibo está lo siguiente.
1
2
3
4
5
6
7
8
9
10
ef get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['title'] = 'Creación de un Recibo'
        context['entity'] = 'Recibos'
        context['list_url'] = self.success_url
        context['action'] = 'add'
        context['arg'] = json.dumps(self.alum())
        context['frmAlumno'] = AlumnoForm()
        context['myform'] = DetReciboForm()
        return context
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def alum(self, **kwargs):
        data = []
        try:
            action = self.request.POST.get('action_al', False)
            print(action)
            if action == False:
                return
            elif action == 'add_alumnos':
                data = []
                id = int(self.request.GET['id'])
                Alumnos = Alumno.objects.filter(pk=id)
                for i in Alumnos:
                    item = i.toJSON()
                    item['text'] = i.get_full_name()
                    data.append(item)
                print(data)
        except Exception as e:
            data['error'] = str(e)
        return data
Y en el template recojo la data así
1
window.datos = {{ arg|safe }};
En el js de la nueva vista Recibo así
1
2
3
$ (function () {
        let data = window.datos
        console.log(data)
Siempre me sale vacío la data, así que me tiene atascado
Como podría decirle que solo procese la data del AJAX, o sino podría cambiarlo a una petición POST, pero luego como recojo esa data en el javascript, que es lo que necesito para luego en un select2 que tengo poner el nombre del Alumno que tenia en la vista anterior.
Por favor si alguién puede ayudarme se lo agradecería mucho.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 44
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

Acceder a mi data con javascript o jquery

Publicado por devilsito (46 intervenciones) el 13/08/2023 19:42:17
La funcion pagar_recibo en JS es de sintaxis PHP, la cual dudo que funcione. Usa FETCH, que es mucho más facil de implementar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 44
Ha mantenido su posición en Django (en relación al último mes)
Gráfica de Django

Acceder a mi data con javascript o jquery

Publicado por devilsito (46 intervenciones) el 10/12/2023 21:48:42
Porque no la sigues con el "inspeccionar" o el debug de Vscode (si es que estas usando ese)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar