Как передать параметр из Django в функцию JavaScript

Я хотел бы узнать, как я могу отправить значение параметра из Django (View, Form, etc) в JavaScript функцию в js файле.

У меня есть приложение "Контакт":

Models.py

class Contact(models.Model):
    firstname = models.CharField(max_length=100, verbose_name='Nombre')
    lastname = models.CharField(max_length=100, verbose_name='Apellidos')
    email = models.EmailField(max_length=100, verbose_name='eMail')
    message = models.TextField(max_length=1000, verbose_name='Mensaje')
    created = models.DateTimeField(auto_now_add=True, verbose_name='Creado')
    updated = models.DateTimeField(auto_now=True, verbose_name='Editado')

    class Meta():
        verbose_name = 'Contacta Mensaje'
        verbose_name_plural = 'Contacta Mensajes'
        ordering = ['-created']

    def __str__(self):
        return str(self.email)

Forms.py

class ContactForm(forms.ModelForm):

    class Meta:
        model = Contact
        fields = ("firstname", "lastname", "email", "message")
        widgets = {
            'firstname': forms.TextInput(attrs={'class':'form-control', 'id': 'id_firstname'}),
            'lastname': forms.TextInput(attrs={'class':'form-control', 'id': 'id_lastname'}),
            'email': forms.EmailInput(attrs={'class':'form-control', 'id': 'id_email'}),
            'message': forms.Textarea(attrs={'class':'form-control', 'id': 'id_message'}),
        }

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

View.py

class ContactView(CreateView):

    form_class = ContactForm
    template_name = 'core/contact.html'

JS функция в файле theme.js

  forms: function () {
    (function() {
      "use strict";
      window.addEventListener("load", function() {
        var forms = document.querySelectorAll(".needs-validation");
        var validation = Array.prototype.filter.call(forms, function(form) {
          form.addEventListener("submit", function(event) {
            if(form.checkValidity() === false) {
              event.preventDefault();
              event.stopPropagation();
            }
            form.classList.add("was-validated");
            if(form.checkValidity() === true) {
              event.preventDefault();
              form.classList.remove("was-validated");
              // Send message only if the form has class .contact-form
              var isContactForm = form.classList.contains('contact-form');
              console.log(isContactForm);
              if(isContactForm) {
                var data = new FormData(form);
                var alertClass = 'alert-danger';
                fetch("", {
                  method: "post",
                  body: data
                }).then((data) => {
                  if(data.ok) {
                    alertClass = 'alert-success';
                  }
                  return data.text();
                }).then((txt) => {
                  var alertBox = '<div class="alert ' + alertClass + ' alert-dismissible fade show"><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' + txt + '</div>';
                  if(alertClass && txt) {
                    form.querySelector(".messages").insertAdjacentHTML('beforeend', alertBox);
                    form.reset();
                  }
                }).catch((err) => {
                  console.log(err);
                });
              }
            }
          }, false);
        });
      }, false);
    })();
  },

Функция JavaScript имеет параметр с именем 'txt', который устанавливает сообщение в 'contact .html" ведьмы в результате отправки формы.

Когда контактная форма отправлена и сохранена в базе данных, я хочу передать значение сообщения об успехе в функцию javascript. А если произошла ошибка сервера, передать сообщение о неудаче.

Как я могу передать это сообщение из Django View или Form в функцию JavaScript, написанную выше.

Спасибо. С уважением,

Вернуться на верх