Как ограничить полевые опции выбора на основе другого поля выбора в django администраторе

Ленивая загрузка может быть настраиваемой, это означает, что вы настраиваете, нужно вам это или нет, в случае отложенной загрузки ваши данные будут выбраны, когда вы запрашиваете это, все данные не выбираются вручную в FindAll сразу.

12
задан Sergey Golovchenko 28 April 2009 в 06:28
поделиться

2 ответа

Вот некоторый javascript (на основе JQuery) для изменения значений параметров элемента при изменении категории:

<script charset="utf-8" type="text/javascript">
  $(function(){
    $("select#id_category").change(function(){
      $.getJSON("/items/",{id: $(this).val(), view: 'json'}, function(j) {
        var options = '<option value="">--------&nbsp;</option>';
        for (var i = 0; i < j.length; i++) {
          options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
        }
        $("#id_item").html(options);
        $("#id_item option:first").attr('selected', 'selected');
      })
      $("#id_category").attr('selected', 'selected');
    })
  })
</script>

Вам необходимо вызвать представление для / items / URL, предоставляющего список JSON: действительные элементы.

Вы можете подключить это к своему администратору, используя модельные определения медиа администратора .

10
ответ дан 2 December 2019 в 20:41
поделиться

Вам понадобится какой-то не серверный механизм фильтрации объектов. Либо так, либо вы можете перезагрузить страницу, когда сделан выбор (что, скорее всего, будет сделано в JavaScript в любом случае).

В противном случае невозможно получить подмножество данных с сервера на клиент.

0
ответ дан 2 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: