我有一个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
emailinfo.py
from datetime import date
weekNumber = date.today().isocalendar()[1]
currentweek = "week"+str(weekNumber)
models.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()
表格
class Tasksadd(forms.ModelForm):
todaydate = forms.DateField(widget=forms.SelectDateWidget,
initial=datetime.date.today())
class Meta:
model = Taskmanager
fields = [
'CurrentSprint', 'todaydate',
]
task-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
是一个常数,该常数在服务器启动时仅计算一次,因此开发工作没有任何问题,因为您每天都在启动。