import json from django.shortcuts import HttpResponse, get_object_or_404 from django.http import Http404 from country.models import Country, Area from theme.models import Tag, Theme # every this model must have method get_subcategories categories = {'area':{'sub':True, 'model':Area, 'sub_categorie_name':'co'}, 'co':{'sub':False, 'model':Country, 'sub_categorie_name':'co'}, 'th':{'sub':False, 'model':Theme, 'sub_categorie_name':'tg'}} def sub_category(request): if request.GET: name = request.GET['name'] categorie = categories.get(name) if not categorie: raise Http404 categorie_id = request.GET['id'] model = categorie['model'] obj = get_object_or_404(model, pk=categorie_id) objects = obj.get_sub_categories() #response = {'sub_categories': objects, 'sub':categorie['sub'], 'sub_name': categorie['sub_categorie_name']} return HttpResponse(json.dumps(objects), content_type='application/json') else: raise Http404