Django - 如何在管理页面上显示科学符号? [英] Django - How to display Scientific Notation on Admin Page Field?
问题描述
现在,它显示的东西像这样丑陋。如何显示为4.08E + 13?
现在我在模型中使用标准的十进制字段。
任何建议非常感谢。
我在Django 1.2上。
一个工作,因为我无法弄清楚如何在Django Python代码中做到这一点。我有管理页面运行一些自定义JavaScript以在页面加载后进行转换。
详细信息:
创建名为decimal_to_sci_not.js的javascript文件,并将其放在媒体目录中:
/ *
查找并转换十进制字段> N成科学计数。
* /
THRESHOLD = 100000;
PRECISION = 3;
函数convert(val){
// ex。 100000 - > 1.00e + 5
return parseFloat(val).toPrecision(PRECISION);
}
函数convert_input_fields(){
var f_inputs = django.jQuery('input');
f_inputs.each(function(index,domEl){
var jEl = django.jQuery(this);
var old_val = parseFloat(jEl.val());
if (old_val> = THRESHOLD){
jEl.val(convert(old_val));
}
});
}
函数convert_table_cells(){
//查看所有td元素,并替换
内部找到的第一个nn数字,如果大于或等于THRESHOLD
var cells = django.jQuery('td');
var re_num = /\d+\.\d+/m; // match any numbers w decimal
cells.each(function(index,domEl){
var jEl = django.jQuery(this);
var old_val_str = jEl.html()。match (re_num);
var old_val = parseFloat(old_val_str);
if(old_val> = THRESHOLD){
jEl.html(jEl.html())replace(old_val_str,convert )));
}
});
}
django.jQuery(document).ready(function(){
convert_input_fields();
convert_table_cells();
});
然后更新您的admin.py代码类以包含javascript文件:
class MyModel1Admin(admin.ModelAdmin):
class Media:
js = ['/media/decimal_to_sci_not.js ']
admin.site.register(MyModel1,MyModel1Admin)
I have a field in my admin page that I'd like to display in Scientific Notation.
Right now it displays something ugly like this. How can I display this as 4.08E+13?
Right now I'm using a standard Decimal field in the model.
Any advice is greatly appreciated.
I'm on Django 1.2.
Well, here's a work around since I can't figure out how to do this within the Django Python code. I have the admin pages run some custom javascript to do the conversion after the page is loaded.
Details:
Create this javascript file called "decimal_to_sci_not.js" and place it in your media directory:
/*
Finds and converts decimal fields > N into scientific notation.
*/
THRESHOLD = 100000;
PRECISION = 3;
function convert(val) {
// ex. 100000 -> 1.00e+5
return parseFloat(val).toPrecision(PRECISION);
}
function convert_input_fields() {
var f_inputs = django.jQuery('input');
f_inputs.each(function (index, domEl) {
var jEl = django.jQuery(this);
var old_val = parseFloat(jEl.val());
if (old_val >= THRESHOLD) {
jEl.val(convert(old_val));
}
});
}
function convert_table_cells() {
//Look through all td elements and replace the first n.n number found inside
//if greater than or equal to THRESHOLD
var cells = django.jQuery('td');
var re_num = /\d+\.\d+/m; //match any numbers w decimal
cells.each(function (index, domEl) {
var jEl = django.jQuery(this);
var old_val_str = jEl.html().match(re_num);
var old_val = parseFloat(old_val_str);
if (old_val >= THRESHOLD) {
jEl.html(jEl.html().replace(old_val_str,convert(old_val)));
}
});
}
django.jQuery(document).ready( function () {
convert_input_fields();
convert_table_cells();
});
Then update your admin.py code classes to include the javascript file:
class MyModel1Admin(admin.ModelAdmin):
class Media:
js = ['/media/decimal_to_sci_not.js']
admin.site.register(MyModel1,MyModel1Admin)
这篇关于Django - 如何在管理页面上显示科学符号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!