AFAIK, нет канонического способа Django для работы с Ajax ... Но это просто чудесно - сделать это самостоятельно:
Сначала вы должны создать представление, которое возвращает все данные JSON, которые понадобятся для обновления.вид.Например, список городов в провинции:
from django.utils import simplejson as json
def list_cities(request):
cities = city_names_in_province(request.GET["province"])
return json.dumps(cities)
Во-вторых, вы должны вызвать это представление из HTML (при условии jQuery):
<select id="provinces">
…
</select>
<select id="cities" disabled="true">
<option>---</option>
</select>
<script>
$("#provinces").change(function() {
var province = $(this).val();
$.getJSON("{% url list_cities %}", { province: province }, function(cities) {
var cities_select = $("#cities");
… put the `cities` list into the `cities_select` …
});
});
</script>
И, кроме«одевание» и проверка ошибок (например, что произойдет, если вызов list_cities
не удастся?), это в основном все, что нужно сделать.