Django, ajax запрос и JsonResponse - PullRequest
       23

Django, ajax запрос и JsonResponse

0 голосов
/ 30 апреля 2020

Я пытаюсь получить данные, заполнив форму, используя ajax вызов. Прежде всего, я создал мой models.py:

class Costi_materiale(models.Model):
    codice_commessa=models.ForeignKey(Informazioni_Generali, on_delete=models.CASCADE, null=True)
    numero_lavorazione=models.ForeignKey(Lavorazione, on_delete=models.CASCADE, null=True)

The forms.py:

class CostiMaterialeForm(forms.ModelForm):
    class Meta:
        model = Costi_materiale
        fields = "__all__"

И, наконец, мой views.py:

class CostiRicavi(ListView):
    model = Costi_materiale
    template_name = 'commesse/costiericavi.html'
    context_object_name = 'costs'

    def get_context_data(self, **kwargs):
       context = super(CostiRicavi, self).get_context_data(**kwargs)
       context.update({
          'form_1': CostiMaterialeForm(),
           })
     return context

class Costi_materiale(View):
    def  get(self, request):
        codice_commessa1 = request.GET.get('codice_commessa', None)
        numero_lavorazione1 = request.GET.get('numero_lavorazione', None)

        obj = Costi_materiale.objects.create(
            codice_commessa = codice_commessa1,
            numero_lavorazione = numero_lavorazione1,
        )

        info = {
            'id':obj.id,
            'codice_commessa':obj.codice_commessa,
            'numero_lavorazione':obj.numero_lavorazione,
        }

        data = {'info': info}

        return JsonResponse(data)

После того, как я создал свой шаблон, в который я поместил форму (используя хрустящий код) и код jquery, как показано ниже:

<form id="addCostoMateriale">
              {% csrf_token %}
              <div class="form-row">
                  <div class="form-group col-2 0 mb-0" >
                      {{form_1.codice_commessa|as_crispy_field}}
                  </div>

.........

$("form#addCostoMateriale").submit(function() {
    var codice_commessaInput = $('input[name="codice_commessa"]').val().trim();
    var numero_lavorazioneInput = $('input[name="numero_lavorazione"]').val().trim();

    if (codice_commessaInput && numero_lavorazioneInput) {
        // Create Ajax Call
        $.ajax({
            url: '{% url "costi_materiale" %}',
            data: {
                'codice_commessa': codice_commessaInput,
                'numero_lavorazione': numero_lavorazioneInput,

            },
            dataType: 'json',
            success: function (data) {
                if (data.info) {
                  appendToUsrTable(data.info);
                }
            }
        });
      } else {
        alert("All fields must have a valid value.");
    }
    $('form#addCostoMateriale').trigger("reset");
    return false;
});

Запрос получает (200 17416), но вызов ajax нет. Поэтому, если я попытаюсь отправить новый запрос, моя база данных не будет обновлена. Я ищу где проблемы, но ничего не нашел. Где ошибки?

...