在 Django View 到模板中,我的日期总是显示为缩写月份、DD、yyyy,但日期选择器使 MM/DD/YYYY



我有一个简单的视图函数:

def booking_request_list(request):
#filter between dates...
#or filter if new bookings.. (is booked = false) AND A DATE
room_list = Room.objects.all()
object_list = HousingRequest.objects.all()
return render(request, 'housing/housing_requests_lists.html', {'booked_list':object_list, 'room_list':room_list})

然后在我的模板中,我只是像这样显示片段:

<table class="table">      
<tr>           
<th>Check In Date</th>           
</tr>
{% for hou in not_booked_list %}
<tr value={{hou.pk}}>
<td> {{hou.checkin_date}} </td>   <td><input type="text" value="{{ hou.checkin_date}}" name="checkin_date_{{hou.pk}}" data-date-format="M/dd/yyyy" class="datepicker form-control dateinput form-control" tabindex="6" autocomplete="off" required id="id_checkin_date_{{hou.pk}}" bid="{{hou.pk}}"></td>
</tr>
{% endfor %}
</table>

base.html 在 HTML 文件的末尾有此部分

<script type="text/javascript">

$(function() {
var j = jQuery.noConflict();    
j('.dateinput').datepicker({ format: "yyyy/dd/M" });
});
</script>
</body>
</html>

但似乎根本不受到日期选择器的尊重。

例如,显示的日期为:

十一月11,2019

在数据库中,它存储为YYYY-MM-DD

模型的定义是:

class HousingRequest(models.Model):
objects = models.Manager()
room = models.ForeignKey('Room', null=True, blank=True, on_delete=models.CASCADE)
user = models.ForeignKey('accounts.APOUser', on_delete=models.CASCADE)
checkin_date = models.DateField('checkin date')

当表单首次加载时,这非常有用,但是当用户单击日期选择器并选择日期时,它会在输入框中输入:

月/日/年

我在上面尝试通过数据标签设置日期选择器的格式,但似乎不需要。 我也不知道如何在视图中强制 django 中的日期为 MM/DD/YYYY(使其像日期选择器一样工作,因为数据设置似乎不起作用(。 我什至可以只显示日期:

<td> {{hou.checkin_date}}</td>  

它仍然将其显示为缩写的月日,年 我真的不在乎显示的格式,但我只是希望它在加载的内容和日期选择器放置的内容之间保持一致。(拥有知识,在未来我的约会外观和感觉中拥有更多的权力/控制(

所以不确定它是否是 django 配置(我在我的设置文件中尝试过这个,不知道这是否正确:

DATE_FORMAT = {
'%m/%d/%Y'
}

或者当我检索我需要的记录时,我的视图中是否有更多的代码? 或者我仍然玩过日期选择器,我相信这是一个引导程序4日期选择器。

尝试按如下方式设置日期格式:

<script> 
$('#datepicker1').datepicker({ format: 'yyyy-mm-dd', uiLibrary: 'bootstrap4' });
</script>

最新更新