很抱歉,这是一个基本问题,但是我是django的新手,无法找到任何有关此的新信息。
我已经在用户表单中实现了FilteredSelectMultiple
小部件。现在,我想对窗口小部件本身进行一些小的更改(进行翻译,编辑工具提示等)。为此,我复制并编辑了原始js
文件。现在,我想用已编辑的文件覆盖原始文件。
为此文件,我创建了js
静态目录。但是随后,我尝试将其添加到我的Media
类加载的小部件中,使其保持不变。
我应该如何正确做?
我在forms.py
中的代码
class DrgSkaiciuokle(forms.Form):
bazine_kaina = forms.DecimalField(max_digits=5, decimal_places=2, required=True,
label="Bazinė kaina",
initial= BazineKaina.objects.get(),
def clean_bazine_kaina(self):
bazine_kaina = self.cleaned_data['bazine_kaina']
return bazine_kaina
drg_pasirinkimas = forms.ModelMultipleChoiceField(queryset=DRGkodas.objects.all(),
label="Pasirinkite atvejį sudarančius DRG",
widget=FilteredSelectMultiple("DRG kodai", is_stacked=False),
required=True)
class Media:
css = {
'all': ('/static/css/widgets.css',),
}
js = (
'/static/js/SelectFilter2.js',
)
def clean_drg_pasirinkimas(self):
drg_pasirinkimas = self.cleaned_data['drg_pasirinkimas']
return drg_pasirinkimas
答案 0 :(得分:0)
经过半夜的思考和更多的挖掘,我自己找到了解决方案。
结果证明,我需要在js
类中定义所有使用过的Media
文件。
我的修改代码:
class DrgSkaiciuokle(forms.Form):
bazine_kaina = forms.DecimalField(max_digits=5, decimal_places=2, required=True,
label="Bazinė kaina",
initial= BazineKaina.objects.get(),
def clean_bazine_kaina(self):
bazine_kaina = self.cleaned_data['bazine_kaina']
return bazine_kaina
drg_pasirinkimas = forms.ModelMultipleChoiceField(queryset=DRGkodas.objects.all(),
label="Pasirinkite atvejį sudarančius DRG",
widget=FilteredSelectMultiple("DRG kodai", is_stacked=False),
required=True)
class Media:
css = {
'all': ('/static/css/widgets.css',),
}
js = (
#copy required files to directory of your choice
'/static/js/core.js',
'/static/js/jquery.init.js',
'/static/js/jquery.js',
'/static/js/SelectBox.js',
'/static/js/SelectFilter2.js',
)
def clean_drg_pasirinkimas(self):
drg_pasirinkimas = self.cleaned_data['drg_pasirinkimas']
return drg_pasirinkimas
编辑:同样重要!如果您尝试在更改js文件后使用Chrome开发网站,请使用ctl-shift-r
组合键对Chrome进行硬重置,因为Chrome会保留旧文件,直到您完全关闭它为止。因此,在修改js代码并刷新网站后,它将显示旧代码!这些知识可以为我节省几天的挖掘和拔头发的时间...