jQuery ajax вызывает ошибку «Not Found» с django - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть 3 зависимых выпадающих списка проселочных дорог страны.

, где страна предварительно заполняется из базы данных и на основе выбора первого, во втором отобразятся соответствующие города.

iЯ могу выбрать из списка стран, и он отображает связанные города, но когда я пытаюсь выбрать город и отображать следующую ошибку:

Not Found: / getdetails2

как исправить эту ошибку, где / getdetails2 - это функция в views.py

models.py

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

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

class City(models.Model):
    name = models.CharField(max_length=100)
    country = models.ForeignKey(Country,on_delete=models.CASCADE , related_name = 'cities')



    def __str__(self):
        # return'id : {0} MouhafazatID :{1} Name :{2}'.format(self.id,self.MouhafazatID,self.name)
        return str(self.name)

class Road(models.Model):
    Vil = models.CharField(max_length=100)
    city= models.ForeignKey(City,on_delete = models.SET_NULL, null=True)
    city= models.ForeignKey(City,on_delete = models.CASCADE, related_name='roads')
    country= models.ForeignKey(Country,on_delete = models.SET_NULL,null=True)

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

home2.html

 $('select#selectcities').change(function () {
                 var optionSelected = $(this).find("option:selected");
                 var valueSelected  = optionSelected.val();
                 var city_name   = optionSelected.text();


                 data = {'ct' : city_name };

                 $.ajax({
                     type:"GET",
                     url:'/getdetails2',
                     // data:JSON.stringify(data),
                     data:data,
                     success:function(result){
                        console.log(result);
                        $("#selectroads option").remove();
                        for (var i = result.length - 1; i >= 0; i--) {
                            $("#selectroads").append('<option>'+ result[i].Vil +'</option>');
                        };
                      },
                });
            }); 
        });
        </script>

views.py

def getdetails2(request):
    if request.method == 'GET' and request.is_ajax():
        city_name = request.GET.get('ct', None) 
        print ("ajax city_name ", city_name)

        result_set = []
        all_roads = []

        answer = str(city_name[1:-1])
        print('answer = ' ,answer)
        selected_city = City.objects.get(name=answer)
        print ("selected city name ", selected_city)

        all_roads = selected_city.roads.all()
        print("roads are: " , all_cities)
        for road in all_roads:
            print ("road name", road.Vil)
            result_set.append({'name': road.Vil})

        return HttpResponse(simplejson.dumps(result_set),content_type='application/json')
        # return JsonResponse(result_set,status = 200)

    else:
        return redirect('/')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...