
Потратив часа 3 на поиск рабочего решения связанных полей (Это когда в зависимости от категории нужно показывать под категорию) спешу поделиться чтоб не забыть
в urls.py
во Вьюхе
from django.core import serializers
json_subcat = serializers.serialize("json", SubCategory.objects.filter(category_name=request.GET['id']))
return HttpResponse(json_subcat, mimetype="application/javascript")
Примерно рассказываю что там происходит
В модели SubCategory выбираем имя субкатегории, которая соответствует ид_категории, что к нам привалило.
всё это оборачиваем в JSON попутно подгружаем библиотеки для этих дел.
и отправляем прямо в формате js всё обратно.
теперь создаём ещё один js файл называем его как душе угодно (и не забываем подключить)
$("select#id_categ").change(function(){
$.getJSON("/ajax/categ/",{id:+$(this).val()}, function(j) {
var options = '<option value="">---------- </option>';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + parseInt(j[i].pk) + '">' + j[i].fields['name'] + '</option>';
}
$("#id_sub").html(options);
$("#id_sub option:first").attr('selected', 'selected');
$("#id_sub").attr('disabled', false);
})
$("#id_categ").attr('selected', 'selected');
})
})
Что он делает?
находит элемент select с id = «id_categ»
При изменении которого вызывает функцию $.getJSON, которая долбится по урле /ajax/categ/ гет запросом и параметром ?id=то_что_выбрано
Если всё отлично выполняется функция j
Которая и меняет значение во втором селекте.
#id_categ – ИД_селекта категории
#id_sub – ИД_селекта подкатегории
