Как получить динамическую дату в Django? - PullRequest
1 голос
/ 24 апреля 2019

У меня есть сайт Django, где у нас есть поля для динамического получения CurrentWeek и CurrentDate. Проблема: Примите во внимание, что 23 апреля я запустил сервер (используя python manage.py runserver), после чего я правильно получаю CurrentWeek и CurrentDate.Далее, если я проверю это к завтрашнему дню (24 апреля), поскольку серверная команда вчерашнего дня (23 апреля) все еще выполняется, теперь она по-прежнему принимает вчерашнюю (23 апреля) дату в виде CurrentWeek и CurrentDate, но не сегодняшнюю дату (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()

forms.py

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 динамически заполняли точную текущую дату определенного дня.Но требуется дата, когда я запустил сервер.

1 Ответ

2 голосов
/ 24 апреля 2019

currentweek должна быть функцией, например:

from datetime import date

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

в вашем случае currentweek - это константа, которая рассчитывается только один раз при запуске сервера, поэтому у вас не возникает проблем при разработке, поскольку вы запускаете каждый день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...