You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.0 KiB
31 lines
1.0 KiB
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(response), content_type='application/json')
|
|
|
|
else:
|
|
raise Http404
|
|
|
|
|
|
|
|
|