django选择字段中的两位数整数

时间:2015-07-08 16:34:13

标签: python django

我有一个表单,我想将日期提交为mm/yyyy

class Add_Serv(forms.Form):
   month_add = forms.ChoiceField(required=True, choices=['01','02'])
   year_add = forms.ChoiceField(required=True, 
              choices=[(x, x) for x in xrange(date.today().year - 1, date.today().year + 1)])

当我的月份以表格形式打印时,它只有一个数字整数1而不是01。这听起来不是什么大不了的事,但在处理这些日期时它会搞砸我的日期格式(而且看起来也很丑陋)。有没有办法在数字之前保持零?

3 个答案:

答案 0 :(得分:1)

在表单的clean方法中添加验证,并检查month字段的长度是1还是2 如果长度为1并且返回月份值

,则追加0

答案 1 :(得分:1)

使用format打印出来:

print("{:02d}".format(my_number))

有关更多格式提示,请参阅Pyformat

答案 2 :(得分:0)

使用jquery库

您只需要一个字段。 forms.py

class FormA(forms.Form):
    fecha = forms.DateField(input_formats=['%m/%Y'])

views.py

def formulario(request):
    if request.method == "POST":
        form = FormA(request.POST)
        if form.is_valid:
            # action
    else:
        form = FormA()
    return render(request,"add.html",{'form':form})

您的模板 我添加了bootstrap css库和django-bootstrap-from

<div class="row">
    <div class="col-lg-8">
        <form id="form" action="" method="POST">
            {{form|bootstrap_horizontal}}
            {%csrf_token%}
            <p align="right"><button id="enviar" type= 'submit' class="btn btn-success"> Guardar</button>
            <button type= "reset" class="btn btn-warning"> Limpiar</button></p>
        </form>
    </div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css">
<script type="text/javascript">
$(function() {
    $('#id_fecha').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/yy',
        onClose: function(dateText, inst) {
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
});
</script>
<style>
.ui-datepicker-calendar {
    display: none;
    }
</style>

结果 http://prntscr.com/7qd01v