Django - 如何在管理页面上显示科学符号? [英] Django - How to display Scientific Notation on Admin Page Field?

查看:166
本文介绍了Django - 如何在管理页面上显示科学符号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



现在,它显示的东西像这样丑陋。如何显示为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆