import json from django.views.generic import DetailView from django.http import HttpResponse from models import City class CityView(DetailView): model = City slug_field = 'url' template_name = 'city/city.html' def get_city(request): if request.is_ajax(): country = request.GET['country'] term = request.GET['term'].capitalize() if not term: qs = City.objects.language().filter(country=country).order_by('translations__name').distinct()[:100] else: qs = City.objects.language().filter(country=country, translations__name__contains=term).distinct() result = [{'id': city.id, 'label': city.name} for city in qs] return HttpResponse(json.dumps(result), content_type='application/json') else: return HttpResponse('not ajax')