python - 如何在 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 字段需要动态填写特定日期的确切当前日期。但是,它需要我启动服务器的日期。
解决方案
应该是currentweek
一个函数,例如:
from datetime import date
def currentweek():
weekNumber = date.today().isocalendar()[1]
return "week{}".format(weekNumber)
在您的情况下,currentweek
当服务器启动时只计算一次,因此您在开发上没有任何问题,因为您每天都开始。
推荐阅读
- r - R-caret - 如何持久化模型
- laravel - Laravel hasOne 只获取一个字段而不是对象
- java - 如何将 2017-08-01T16:00:00-04:00 转换为 Java 中的时间戳?
- javascript - 在 SAS 中使用 JavaScript + D3 3.x 代码创建 HTML 输出
- c# - 如何处理 ssis 包中变量的锁定共享读取?
- nedb - node.js-express 中 nedb 的 database.find{} 问题
- sql - 来自具有 ID 分组的软配置字段的数据透视表
- ajax - 使用烧瓶海浪进行 Ajax 调用
- amazon-emr - 有没有办法让 Step Functions 输入值进入 EMR step Args
- laravel - 在 Laravel 6 中对子查询使用 addSelect 时出错