Javascript 动态python脚本中db函数的下拉选择参数

Javascript 动态python脚本中db函数的下拉选择参数,javascript,python,ajax,database,django,Javascript,Python,Ajax,Database,Django,我有一个django模型表单,其中包含以下字段: nod_id1 = models.ForeignKey('Eonodes',..) nod_id2 = models.ForeignKey('Eonodes',..) 按预期呈现为下拉列表的 我想做以下工作: 当用户从两个列表中选择一个选项时,需要执行一个python脚本,该脚本使用用户的两个选项的参数调用db函数。函数返回的内容我希望保存到表单的其他字段(directiondb=models.IntegerField())。 剧本可以是这样的

我有一个django模型表单,其中包含以下字段:

nod_id1 = models.ForeignKey('Eonodes',..)
nod_id2 = models.ForeignKey('Eonodes',..)
按预期呈现为下拉列表的

我想做以下工作: 当用户从两个列表中选择一个选项时,需要执行一个python脚本,该脚本使用用户的两个选项的参数调用db函数。函数返回的内容我希望保存到表单的其他字段(
directiondb=models.IntegerField()
)。 剧本可以是这样的:

cursor = connection.cursor()
cursor.execute("SELECT GETDIRECTIONDB(262,265) from sys.dual")
result = cursor.fetchall()
其中262265是用户选择


我的意思是在提交数据之前,如何在运行中完成它?

在保存数据之前,覆盖模型的保存方法以执行自定义操作


您的第一行提到“一个django模型表单”-我认为应该是“一个django模型”(模型表单是从模型生成的表单。太棒了!你知道吗?如果我没有字段directiondb,我只是想在用户节点选择后在表单上显示get_direction_db返回的值,我该怎么做?因此用户从下拉列表中选择,然后表单用va动态更新来自get_driction_db()的lue?您需要做的是使用JavaScript将事件处理程序添加到下拉列表中。事件处理程序将使用AJAX调用将节点值传递回您的web应用程序,并使用结果更新表单。您很可能希望使用jQuery。是的,没错。我只是不知道如何执行此操作,因为我的下拉列表是通过浏览器呈现的忽略modelFroms中的关键字段,而不是通过典型的Select/html等。modelForm只是使用常规html
Select
元素生成一个常规html表单。查看呈现页面的html源代码-这很简单。我建议使用jQuery来操作表单。在浏览器的JS控制台中执行此操作,以便您可以快速进行实验和分析学习。
def get_direction_db(self.nod_id1, self.nod_id2):
    cursor = connection.cursor()
    cursor.execute("SELECT GETDIRECTIONDB(262,265) from sys.dual")
    result = cursor.fetchall()
    return result[0]  # or whatever

class MyModel(models.Model):
    nod_id1 = models.ForeignKey('Eonodes',..)
    nod_id2 = models.ForeignKey('Eonodes',..)
    directiondb = models.IntegerField()

    def save(self, *args, **kwargs):
        self.directiondb = get_direction_db(self.nod_id1, self.nod_id2)
        super(MyModel, self).save(*args, **kwargs)