Почему модал Bootstrap4 не показывает данные в моем шаблоне Django? - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь отобразить данные в модальное тело с django переменными. Я очень нуб в ajax и django. Функция ajax передает идентификатор объекта Galeria, а затем представление возвращает JsonResponse с данными. Почему модал не берет данные? Если я console.log, он также печатает данные, но когда я пытаюсь передать данные через переменные django, модальное значение отображается пустым. Что я делаю не так?

Мои views.py

def get_galeria(request):
    galeria = Galeria.objects.get(id=int(request.GET['ajax_galeria']))
    print(galeria.id)
    context = {}
    context['galeriaID'] = galeria.id
    context['galeriaNombre'] = galeria.nombre

    return JsonResponse(context, safe=False)

models.py

class Galeria(models.Model):
    uuid = models.CharField(unique=True, max_length=36, blank=True, null=True)
    usuario_creador = models.ForeignKey('Usuario', on_delete=models.CASCADE, db_column='usuario_creador', blank=True, null=True, related_name='galerias_usuariocreador')
    usuario_auditor = models.ForeignKey('Usuario', on_delete=models.CASCADE, db_column='usuario_auditor', blank=True, null=True, related_name='galerias_usuarioauditor')
    nombre = models.CharField(unique=True, max_length=100)
    ruta = models.ImageField(upload_to=settings.MEDIA_ROOT, unique=True, max_length=255)
    es_imagen = models.IntegerField()
    es_video = models.IntegerField()
    es_audio = models.IntegerField(blank=True, null=True)
    auditada = models.DateTimeField(blank=True, null=True)
    descripcion = models.TextField(blank=True, null=True)
    modificado = models.DateTimeField(blank=True, null=True)
    eliminado = models.IntegerField(blank=True, null=True)
    tipo = models.CharField(max_length=10, blank=True, null=True)
    grupo = models.ForeignKey('Grupo', on_delete=models.CASCADE, db_column='grupo', blank=True, null=True, related_name='galerias_grupo')
    fecha_creacion = models.DateField(auto_now_add=True, blank=True, null=True)

    def __str__(self):
        return self.nombre

    class Meta:
        managed = True
        db_table = 'galeria'

index. html (см. ajax Функциональные и модальные с id = 'modal_info_galeria')

image

1 Ответ

0 голосов
/ 07 января 2020

Я решил свою проблему, выполнив это в функции ajax:

из этого:



                // handle a successful response
                success : function(data, response) {
                    //$('#selected_galeria').val(''); // remove the value from the input                 
                    console.log(data);
                    $(".modal-body").html(data);
                    document.getElementById('modal_galeria_info').style.display='block';
                },

До этого:

                    // handle a successful response
                    success : function(data, response) {
                        //$('#selected_galeria').val(''); // remove the value from the input                 
                        console.log(data.galeriaID);
                        document.getElementById('gg').innerHTML = data.galeriaID;
                    },

Это было действительно очевидно и я не могу поверить, что я дурак. Я пытался вставить html с данными вместо передачи данных элементам.

Проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...