Javascript 动态python脚本中db函数的下拉选择参数
我有一个django模型表单,其中包含以下字段: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())。 剧本可以是这样的
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)