我有一个一般性的问题要问django-admin。是否可以对表单更改做出React?我在django-admin详细信息站点中有一个选择域,每当我修改选择域中的数据时,我想修改只读的域。有人处理过这个问题吗?
yi0zb3m41#
我的意见是:就像其他人说的那样,这是一个javascript的工作。在管理页面Django pases jquery。它被称为django.jQuery。所以你会做@Ashfaq建议的事情。你会创建一个custom_script.js并添加到Media元类中。基本上(如@Ashfaq):
javascript
jquery
django.jQuery
custom_script.js
Media
class MyModelAdmin(admin.ModelAdmin): class Media: js = ("js/custom_script.js",)
而custom_script.js将是这样的(假设您的select字段名为id_category):
select
id_category
django.jQuery( document ).ready(function() { console.log( "ready!" ); django.jQuery('#id_category').change(function() { alert( "Handler for #id_category was called." ); }); });
ready函数将保证设置处理程序。
ready
yyyllmsg2#
我认为在这里起作用的是添加jQuery +您的自定义javascript,并使用事件/点击任何您想要的元素。
在custom_script中,您可以根据需要添加单击或更改事件。
8i9zcol23#
在另一个SO问答中找到了阿比吉斯K的一个很好的答案:How can i add a onchange js event to Select widget in Django?
reciept=forms.ChoiceField(reciept_types, widget = forms.Select(attrs = {'onchange': "myFunction();"}))
为了清楚起见,这是您在小部件定义中添加的内容:attrs = {'onchange': "myFunction();"},用于定义当onchange事件触发时将调用哪个JS函数。在ModelAdmin中,您可以定义一个您想要访问的JavaScript文件,在该文件中您可以定义函数“myFunction()":
attrs = {'onchange': "myFunction();"}
onchange
@admin.register(AnswerTree) class AnswerTreeAdmin(ModelAdmin): form = AnswerTreeForm ... class Media: js = ("admin_js/answertree_modeladmin.js",)
Django关于在ModelAdmin上定义资产(如JavaScript & CSS)的文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-asset-definitions还有一点很有用,我发现你可以通过attrs = {'onchange': "myFunction(this.value);"}来访问输入的值,注意我现在传递的是参数this.value。JavaScript函数定义示例:
attrs = {'onchange': "myFunction(this.value);"}
this.value
myFunction = (value) => { console.log(value) } OR myFunction(value) { console.log(value) }
3条答案
按热度按时间yi0zb3m41#
我的意见是:
就像其他人说的那样,这是一个
javascript
的工作。在管理页面Django pasesjquery
。它被称为django.jQuery
。所以你会做@Ashfaq建议的事情。你会创建一个custom_script.js
并添加到Media
元类中。基本上(如@Ashfaq):
而
custom_script.js
将是这样的(假设您的select
字段名为id_category
):ready
函数将保证设置处理程序。yyyllmsg2#
我认为在这里起作用的是添加jQuery +您的自定义javascript,并使用事件/点击任何您想要的元素。
在custom_script中,您可以根据需要添加单击或更改事件。
8i9zcol23#
在另一个SO问答中找到了阿比吉斯K的一个很好的答案:
How can i add a onchange js event to Select widget in Django?
为了清楚起见,这是您在小部件定义中添加的内容:
attrs = {'onchange': "myFunction();"}
,用于定义当onchange
事件触发时将调用哪个JS函数。在ModelAdmin中,您可以定义一个您想要访问的JavaScript文件,在该文件中您可以定义函数“myFunction()":
Django关于在ModelAdmin上定义资产(如JavaScript & CSS)的文档:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#modeladmin-asset-definitions
还有一点很有用,我发现你可以通过
attrs = {'onchange': "myFunction(this.value);"}
来访问输入的值,注意我现在传递的是参数this.value
。JavaScript函数定义示例: