django-xadmin数字输入框不支持小数点小数问题
环境:https://github.com/y2kconnect/xadmin-for-python3.git python3.5.2 django1.9.12
原因:数字输入框用的是html5 input number元素,因未定义step属性,所以只能输入整数,不能输入小数
解决办法:
第一步:新增文件xadmin\templatetags\xadmin_filters.py内容如下:
from django import template
import math
register = template.Library() @register.filter(is_safe=False)
def number_step(decimal_places):
"""根据decimal_places小数位数返回input的step值"""
try:
return 1/math.pow(10, decimal_places)
except Exception as e:
return ''
第二步:xadmin\templates\xadmin\filters\number.html 增加input number输入框的step属性,以下为更改好后的number.html源码
{% load i18n %}
{% load xadmin_filters %}
<li class="dropdown-submenu filter-number">
<a><i class="fa fa-filter {% if spec.is_used %}text-success{%else%}text-muted{% endif %}"></i> {{ title }}</a>
<div class="popover right">
<div class="arrow"></div>
<h3 class="popover-title">
{% trans "Search" %} {{title}}
</h3>
<div class="popover-content">
<form method="get" action="">
{{ form_params|safe }}
<div class="input-group">
<span class="input-group-addon">=</span>
<span class="input-group-btn">
<a class="btn btn-default toggle{%if ne_val%} active{%endif%}" data-toggle="button" data-off-name="{{equal_name}}" data-on-name="{{ne_name}}">!</a>
</span>
<input name="{%if ne_val %}{{ne_name}}{% else %}{{equal_name}}{%endif%}" class="form-control" type="number" value="{%if ne_val %}{{ne_val}}{% else %}{{equal_val}}{%endif%}" placeholder="{% trans "Enter Number" %}" {%if spec.field and spec.field.decimal_places %}step="{{spec.field.decimal_places|number_step}}"{%endif%}/>
<span class="input-group-btn"><a class="btn btn-default remove">x</a></span>
</div>
<div class="input-group">
<span class="input-group-addon">></span>
<span class="input-group-btn">
<a class="btn btn-default toggle{%if gte_val%} active{%endif%}" data-toggle="button" data-off-name="{{gt_name}}" data-on-name="{{gte_name}}">=</a>
</span>
<input name="{%if gte_val %}{{gte_name}}{% else %}{{gt_name}}{%endif%}" class="form-control" type="number" value="{%if gte_val %}{{gte_val}}{% else %}{{gt_val}}{%endif%}" placeholder="{% trans "Enter Number" %}" {%if spec.field and spec.field.decimal_places %}step="{{spec.field.decimal_places|number_step}}"{%endif%}/>
<span class="input-group-btn"><a class="btn btn-default remove">x</a></span>
</div>
<div class="input-group">
<span class="input-group-addon"><</span>
<span class="input-group-btn">
<a class="btn btn-default toggle{%if lte_val%} active{%endif%}" data-toggle="button" data-off-name="{{lt_name}}" data-on-name="{{lte_name}}">=</a>
</span>
<input name="{%if lte_val %}{{lte_name}}{% else %}{{lt_name}}{%endif%}" class="form-control" type="number" value="{%if lte_val %}{{lte_val}}{% else %}{{lt_val}}{%endif%}" placeholder="{% trans "Enter Number" %}" {%if spec.field and spec.field.decimal_places %}step="{{spec.field.decimal_places|number_step}}"{%endif%}/>
<span class="input-group-btn"><a class="btn btn-default remove">x</a></span>
</div>
<button type="submit" class="btn btn-success">{% trans "Apply" %}</button>
{% if spec.used_params %}
<a class="btn btn-default" href="{{remove_url}}">{% trans "Clean" %}</a>
{% endif %}
</form>
</div>
</div>
</li>
django-xadmin数字输入框不支持小数点小数问题的更多相关文章
- jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...)
jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) numberbox(数值输入框) HTML required:必填字段,默认为false:prompt:显示 ...
- WPF数字输入框和IP地址输入框
数字输入框 简介 在业务中,我们经常需要限制用户的输入,比如限制输入长度,限制只能输入数字等等.限制输入长度WPF内置的TextBox已经帮我们解决了,但是限制输入数字却并未在WPF中内置解决方案.使 ...
- WPF自定义数字输入框控件
要求:只能输入数字和小数点,可以设置最大值,最小值,小数点前长度,小数点后长度(支持绑定设置): 代码如下: using System; using System.Collections.Generi ...
- 动手写个数字输入框1:input[type=number]的遗憾
前言 最近在用Polymer封装纯数字的输入框,开发过程中发现不少坑,也有很多值得研究的地方.本系列打算分4篇来叙述这段可歌可泣的踩坑经历: <动手写个数字输入框1:input[type=nu ...
- 第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码
第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码 下载地址:https://github.com/mbi/django- ...
- 第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6
第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步 ...
- 第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框
第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框 首先安装DjangoUeditor3模块 Ueditor HTML编辑器是百度开源的HTML编辑器 下载 ...
- JS控制只能输入数字并且最多允许小数点两位
直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现,回填数据以及错误提示html
第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现 1,配置登录路由 from django.conf.urls import url, include # 导入dja ...
随机推荐
- Git详细教程---多人协作开发
Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...
- 不依赖浏览器控制台的JavaScript断点调试方法
随着浏览器的逐渐强大,绝大多数情况下的代码调试都是可以通过浏览器自带的一些调试工具进行解决.然而对于一些特殊情况仍然无法享受到浏览器的强大 调试能力,比如QQ客户端内嵌web的调试(虽然说QQ目前已经 ...
- 【转】Java方向如何准备BAT技术面试答案(汇总版)
原文地址:http://www.jianshu.com/p/1f1d3193d9e3 这个主题的内容之前分三个篇幅分享过,导致网络上传播的比较分散,所以本篇做了一个汇总,同时对部分内容及答案做了修改, ...
- m个苹果放入n个盘子问题
这个问题,看似是一个简单的排列组合问题,但是加上不同的限制条件,会演变成不同的问题,感觉很奇妙,就总结一下列举下来 问题一 问题描述:把m个同样的苹果放在n个同样的盘子里,允许有的盘子空着不放,问有多 ...
- winform无边框窗口拖动
无边框的窗口想拖动,只需要在置顶的容器上添加对应的mousedown 和 mousemove 事件就可以实现了.代码如下: //拖动窗口 private Point mPoint = new Poin ...
- Hibernate中调用带有underscore的Column Name
Hibernate中默认的NamingStrategy不支持调用带有下划线的column name.在hibernate的bean中必须使用camel case.使用ImprovedNamingStr ...
- DOM4J介绍与代码示例(2)-XPath 详解
XPath 详解,总结 XPath简介 XPath是W3C的一个标准.它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计.目前有XPath1.0和 XPath2.0两个版本.其 ...
- 机器学习:Python实现聚类算法(一)之AP算法
1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传播算法,是在2007年的Science杂志上提出的一种新的聚类算法.AP算法的基本思想是将全部数据点都 ...
- 虚拟机安装Android最详细教程
虚拟机想必大家都听说过,有些同学还用过.虚拟机可以模拟出一个操作系统,基于物理机创建.可以模拟常见的 Windows,ubuntu等等. 在使用虚拟机的过程中,想必大家都遇到过一些棘手的问题,尤其是安 ...
- python小工具:用python操作HP的Quality Center (二)----- 用异步方式提高速度
上接第一篇 http://www.cnblogs.com/sdet/p/6874631.html 在python中,很简单地能把http请求通过异步的方式发送,以下代码在python 3.6.0上运行 ...