Javascript 如何将自定义JS与Django内联使用

Javascript 如何将自定义JS与Django内联使用,javascript,django,inline,admin,Javascript,Django,Inline,Admin,我有一个内嵌的Django应用程序: class Account(models.Model): ContractNum = models.PositiveIntegerField(unique=True, blank=True, null=True) LastName = models.CharField(max_length=50,) FirstName = models.CharField(max_length=50, ) class Subscription(mo

我有一个内嵌的Django应用程序:

class Account(models.Model):
    ContractNum = models.PositiveIntegerField(unique=True, blank=True, null=True)
    LastName = models.CharField(max_length=50,)
    FirstName = models.CharField(max_length=50, )

class Subscription(models.Model):
    Account = models.ForeignKey(Account, related_name='AccountLine')
    IpAddress = models.IPAddressField(unique=True, default=getFreeIP)
    MacAddress = MACAddressField() 
    Switch = models.ForeignKey(Switch, related_name='SwitchAccounts')
    Port = models.ForeignKey(Port )
在管理接口中,我为Account类提供了内联。因此,我生成了如下HTML:

              <td class="Switch">
                  <select name="AccountLine-0-Switch" id="id_AccountLine-0-Switch">
<option value="">---------</option>
<option value="1">ds34/33-2</option>
<option value="8" selected="selected">ds34-1</option>
</select><a href="/admin/cmdb/switch/add/" class="add-another" id="add_id_AccountLine-0-Switch" onclick="return showAddAnotherPopup(this);"> <img src="/admin_media/img/admin/icon_addlink.gif" width="10" height="10" alt="Add one more"/></a>    
              </td>
              <td class="Port">
                  <select name="AccountLine-0-Port" id="id_AccountLine-0-Port">
<option value="">---------</option>
<option value="1">3com34:1</option>
<option value="161" selected="selected">ds34-1:1</option>
</select><a href="/admin/cmdb/port/add/" class="add-another" id="add_id_AccountLine-0-Port" onclick="return showAddAnotherPopup(this);"> <img src="/admin_media/img/admin/icon_addlink.gif" width="10" height="10" alt="Add one more"/></a>

---------
ds34/33-2
ds34-1
---------
3com34:1
ds34-1:1
我不是很擅长JavaScript,你能帮我根据所选的交换机选项框预填充端口选项框吗? 我已经做了: 创建了JSON查询和视图,它返回特定开关的端口,我不知道如何为内联字段添加动态id,以及如何在再添加一行时自动执行此操作?
感谢您提前提出的任何想法和帮助

在那篇文章中,我按照你的建议做了,它工作得很好,下面是我制作的JavaScript:

$(document).ready(function() {
        $(".module").delegate("[id$=-Switch]", "change", function() {
            var row = $(this).attr("id").split('id_AccountLine-')[1].split("-Switch")[0];
            var switch_id = $(this).val();
        var json_url = "/admin/cmdb/switch_ports/"+switch_id+"/"
            $("#id_AccountLine-"+row+"-Port").html("");
        $.post("/admin/cmdb/switch_ports/"+switch_id+"/", { "func": "getNameAndTime" },
                function(data){
            for ( var i = 0; i < data.length; i++) {
                var onePort = "<option value=\""+data[i].pk+"\">"+data[i].fields.PortNum+"</option>";
                $("#id_AccountLine-"+row+"-Port").append(onePort);
            }
                }, "json");
        });
    });
$(文档).ready(函数(){
$(“.module”).delegate(“[id$=-Switch]”,“change”,function(){
var row=$(this).attr(“id”).split('id_AccountLine-')[1]。split(“-Switch”)[0];
var开关_id=$(this.val();
var json_url=“/admin/cmdb/switch_port/”+switch_id+”/”
$(“#id#u AccountLine-”+行+“-端口”).html(“”);
$.post(“/admin/cmdb/switch\u ports/”+switch\u id+“/”,{“func”:“getNameAndTime”},
功能(数据){
对于(变量i=0;i
在那篇文章中,我按照你的建议做了,它工作得很好,下面是我制作的JavaScript:

$(document).ready(function() {
        $(".module").delegate("[id$=-Switch]", "change", function() {
            var row = $(this).attr("id").split('id_AccountLine-')[1].split("-Switch")[0];
            var switch_id = $(this).val();
        var json_url = "/admin/cmdb/switch_ports/"+switch_id+"/"
            $("#id_AccountLine-"+row+"-Port").html("");
        $.post("/admin/cmdb/switch_ports/"+switch_id+"/", { "func": "getNameAndTime" },
                function(data){
            for ( var i = 0; i < data.length; i++) {
                var onePort = "<option value=\""+data[i].pk+"\">"+data[i].fields.PortNum+"</option>";
                $("#id_AccountLine-"+row+"-Port").append(onePort);
            }
                }, "json");
        });
    });
$(文档).ready(函数(){
$(“.module”).delegate(“[id$=-Switch]”,“change”,function(){
var row=$(this).attr(“id”).split('id_AccountLine-')[1]。split(“-Switch”)[0];
var开关_id=$(this.val();
var json_url=“/admin/cmdb/switch_port/”+switch_id+”/”
$(“#id#u AccountLine-”+行+“-端口”).html(“”);
$.post(“/admin/cmdb/switch\u ports/”+switch\u id+“/”,{“func”:“getNameAndTime”},
功能(数据){
对于(变量i=0;i
您应该接受这个答案,或者接受启发它的答案,这取决于它是否代表了此处所述的重大发展。接受答案很重要,因为它可以防止人们在浏览未回答的问题时浪费时间。对提供了有用答案的人给予认可也很重要。此外,它会让你看起来更好,并帮助你在将来得到答案。你应该接受这个答案或是激发这个答案的答案,这取决于它是否代表了这里所解释的重大发展。接受答案很重要,因为它可以防止人们在浏览未回答的问题时浪费时间。对提供了有用答案的人给予认可也很重要。另外,它让你看起来更好,并帮助你在未来得到答案。