Django объекты модели AJAX GET не получает ответ - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь получить объекты модели (муниципалитет) с одинаковым ключом внешнего объекта (провинция) по щелчку пользователя. но я не получаю ответа, когда я добавляю URL, я получаю 404 Нет провинций соответствует данному запросу ...

Вот модели, о которых идет речь:

class Governorate(models.Model):
    name=models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Municipality(models.Model):
    name=models.CharField(max_length=100)
    mun_d=models.TextField()
    gov=models.ForeignKey(Governorate, on_delete=models.PROTECT)
    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('forums-home', kwargs={'municipality': self.name})

Django просмотр

def municipality_by_gov(request):

    if request.is_ajax and request.method == 'GET':
        gov_name = request.GET.get('gov_name', False)
        gov = get_object_or_404(Governorate, name=gov_name)
        gov_muns = Municipality.objects.filter(gov=gov)


        data = serializers.serialize('json', gov_muns)

        return JsonResponse(data, safe=False)

Django URL

path('ajax/MunByGov/', municipality_by_gov, name='MunByGov'),

Сценарий

$('.GovLink').click(function(){
        $('#GovModalLabel').text($(this).data('name'));
        var gov_name=$(this).data('name');           
        $.ajax( 
        { 
            type:"GET", 
            url: "{% url 'MunByGov' %}", 
            datatype: 'json',
            data:{ gov_name: gov_name }, 
        success: function( response ) 
        { 
            var response = JSON.parse(response)[0];

            document.getElementById("text-container").innerHTML = response.fields.name;

            },


                      }) });

1 Ответ

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

Проблема была в том, что я использовал тонкую сборку jQuery, в которой были удалены некоторые вещи, ajax был одним из них. Решение: просто скачайте обычную (сжатую или нет) версию jQuery и включите ее в свой проект.

То есть используйте вместо

Очевидно, это обычная ловушка, я надеюсь, что это помогает кому-то еще.

...