首页 > 解决方案 > 如何在 django 中获取动态日期?

问题描述

我有一个 Django 站点,其中我们有动态获取 CurrentWeek 和 CurrentDate 的字段。 问题:考虑 4 月 23 日,我启动了服务器(使用 python manage.py runserver),然后我正确获取了 CurrentWeek 和 CurrentDate。此外,如果我在明天(4 月 24 日)之前检查,因为昨天的(4 月 23 日)服务器命令仍在运行,现在它仍然将昨天的(4 月 23 日)日期作为 CurrentWeek 和 CurrentDate,但不是今天的日期(4 月 24 日)。

我尝试将我的时区更改为亚洲/加尔各答,我settings.py有这些:

USE_I18N = True

USE_L10N = True

USE_TZ = True

电子邮件信息.py

from datetime import date

weekNumber = date.today().isocalendar()[1]

currentweek = "week"+str(weekNumber)

模型.py

from django.db import models
from Taskmanager.email_info import currentweek

class Taskmanager(models.Model):
    CurrentSprint = models.CharField(max_length=10, 
                                     default=currentweek, 
                                     choices=week_number)
    todaydate = models.DateField()

表格.py

class Tasksadd(forms.ModelForm):
    todaydate = forms.DateField(widget=forms.SelectDateWidget, 
                                initial=datetime.date.today())
    class Meta:
        model = Taskmanager
        fields = [
                  'CurrentSprint', 'todaydate',
                 ]

任务-create.html

<div class="container">
    <div class="row ml-auto">
        <div class="col-sm-offset-3 col-sm-6">
                 <form method="POST" action=".">
                  {% csrf_token %}
                   </br>
                    <h3>Add tasks here:</h3>
                      {{ form|crispy }}
                         <input type="submit" name="submit" 
                             class="btn btn-info" 
                             placeholder="Submit">
                  </form>
               </div>
        </div>
 </div>

我希望每当我创建任务时,我需要 CurrentWeek 和 CurrentDate 字段需要动态填写特定日期的确切当前日期。但是,它需要我启动服务器的日期。

标签: pythondjango

解决方案


应该是currentweek一个函数,例如:

from datetime import date

def currentweek():
    weekNumber = date.today().isocalendar()[1]
    return "week{}".format(weekNumber)

在您的情况下,currentweek当服务器启动时只计算一次,因此您在开发上没有任何问题,因为您每天都开始。


推荐阅读