JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 如何根据django管理员中的另一个选择字段限制选择字段选项大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下型号:
class Category(models.Model):
    name = models.CharField(max_length=40)

class Item(models.Model):
    name = models.CharField(max_length=40)
    category = models.ForeignKey(Category)

class Demo(models.Model):
    name = models.CharField(max_length=40)
    category = models.ForeignKey(Category)
    item = models.ForeignKey(Item)

在创建新演示的管理界面中,用户从下拉列表中选择类别后,我想限制“项目”下拉菜单中的选项数量.如果用户选择其他类别,则项目选择应相应更新.我想在客户端上限制项目选择,甚至在服务器上进行表单验证之前.这是为了可用性,因为项目列表可能是1000可以缩小类别将有助于使其更易于管理.

有没有一个“django-way”这样做,或者是定制JavaScript这里唯一的选择?

解决方法

这是一些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列表.

您可以使用model admin media definitions将其挂接到管理员中.

大佬总结

以上是大佬教程为你收集整理的javascript – 如何根据django管理员中的另一个选择字段限制选择字段选项全部内容,希望文章能够帮你解决javascript – 如何根据django管理员中的另一个选择字段限制选择字段选项所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。