Django模板中日期过滤器的问题

探讨了在表单提交过程中遇到的一个关于日期字段显示的问题,即提交后日期字段无法正常显示,通过调整模板语法解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做注册功能,需要提交一个日期到服务器,但是却出了一些错误。功能主要为提交表单到服务器,服务器刷新表单页面。
提交表单到服务器没什么问题。

<input id="birthday" class="date form_date form-control" size="16" type="text"  name="birthday" data-date-format="yyyy-mm-dd" readonly value={{ profile.birthday|date:"Y-m-d" }}>

使用了过滤器value={{ profile.birthday|date:”Y-m-d” }},因为不能日期类型不能直接扔出来。

只需要把format填好,使用bootstrap datetimepicker插件就可以。
但是提交完表单,刷新页面其他字段都出来了,但是只有日期这个input不出来。不过如果不提交表单,单纯的刷新页面是没问题的(刷新页面会将数据库里数据读取出来)。

def profile(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/login')
    if request.method=='POST':
        try:
            user=request.user
            Profile=user.get_profile()
            Profile.nickname=request.POST.get('nickname','')
            Profile.phone=request.POST.get('phone','')
            if request.POST.get('birthday'):
                Profile.birthday = request.POST.get('birthday')
            if request.POST.get('gender'):
                Profile.gender = request.POST.get('gender','')
            Profile.QQ = request.POST.get('QQ','')
            Profile.position = request.POST.get('position','')
            Profile.country = request.POST.get('country','')
            Profile.save()
            return render(request,'profile.html',{'profile':request.user.get_profile(),'succes':u'更新成功!'})
        except:
            return render(request,'profile.html',{'profile':request.user.get_profile(),'fail':u'输入有误!'})
    return  render(request,'profile.html',{'profile':request.user.get_profile()})

这里写图片描述

这里写图片描述

研究了一番,发现应该是过滤器的问题。提交完表单不用过滤器就可以成功的显示出来。在提交完表单后使用value={{ profile.birthday}}。

{% if profile.birthday %}
                                    {%if succes or fail %}
                                    <input id="birthday" class="date form_date form-control" size="16" type="text"  name="birthday" data-date-format="yyyy-mm-dd" readonly value={{ profile.birthday}}>
                                    {% else %}
                                    <input id="birthday" class="date form_date form-control" size="16" type="text"  name="birthday" data-date-format="yyyy-mm-dd" readonly value={{ profile.birthday|date:"Y-m-d" }}>
                                    {% endif %}
                                {% else %}
                                    <input id="birthday" class="date form_date form-control" size="16" type="text"  name="birthday" data-date-format="yyyy-mm-dd" readonly>
                                {% endif %}

在模板页面做一下判断就可以,目前为什么会出现这个问题还不知道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值