Я пытаюсь использовать ссылку API-интерфейса запроса django с фильтрами на основе DateTimeField.django queryset filter datetimefield
я подготовил следующую модель, в моем models.py:
class KleedkamerIndeling(models.Model):
gametimedate = models.DateTimeField(auto_now=False, auto_now_add=False) # date and time of game
hometeam = models.CharField(max_length=25, blank=True) # name of home playing team team
homedressroom = models.CharField(max_length=25, blank=True) # dressing room of home playing team
awayteam = models.CharField(max_length=25, blank=True) # name of visiting team team
awaydressroom = models.CharField(max_length=25, blank=True) # dressing room of visiting team team
pitch = models.CharField(max_length=25, blank=True) # name/number of playing pitch
referee = models.CharField(max_length=25, blank=True) # name of referee
refdressroom = models.CharField(max_length=25, blank=True) # name/number of referee dressroom
timestamp = models.DateField(auto_now_add=True, auto_now=False)
indelings_datum = models.DateField() # need to change to datum added later
def __unicode__(self):
return smart_unicode(self.hometeam)
Я хочу, чтобы получить доступ к базе данных на основе текущей даты. Должно быть что-то вроде:
queryset = KleedkamerIndeling.objects.all().filter(gametimedate=date.today())
Это работало раньше, когда я использовал «DateField», но я решил пойти к DateTimeField, потому что я также необходимо время начала игры играл.
У меня есть веб-сайт и stackoverflow и нашел следующую более старую тему, How can I filter a date of a DateTimeField in Django?, но я загнию на воплощении.
Я хочу создать запрос, который получит все «KleedkamerIndeling», доступные для сегодняшней даты. Впоследствии я хочу проверить, есть ли в списке более 10 объектов. Если это так, я хочу еще сузить его в зависимости от текущего времени, также через фильтр на поле datetime. Наконец, я хочу отсортировать список объектов таким образом, чтобы он сортировался вовремя.
Я знаю, что моя проблема заключается в том, какие характеристики в datetimefield van я ценю пару строк кода, чтобы помочь мне двигаться вперед. Я пытаюсь найти правильный запрос в оболочке python manage.py весь день ....
Моя модель больше всего работает, потому что запросset = KleedkamerIndeling.objects.all(), похоже, работает, и я могу установить для каждого объекта, называемого «game0 through game10» из списка запросов.
У меня есть еще один вопрос о формате DateTimeField:
Я определил «KleedkamerIndeling», который описывает игру, которая начинается в 13:00. Я использовал объекты в списке запросов для определения 10 различных «игровых» объектов. то есть game0 = [queryset [0] .homeeam и т. д. хотя игра10, если применимо. Поле gametime отображается в шаблоне с помощью фильтра: {{game0.0 | date: "H"}}: {{game0.0 | date: "i"}}. Я все еще получаю «:» в случае без объекта game0. Я планирую решить это с помощью сценария if else в шаблоне или в представлении, или есть лучший способ исправить это?
Отлично, это похоже на работу. Благодаря! Получали и Runtimewarming при попытке этого в оболочке python. В нем указано, что RuntimeWarning: DateTimeFiled KleedkamerIndeling.gametimedate получил наивное datetime (2014-12-06 00:00:00), а поддержка часового пояса активна ». Но кроме этого это работает! – borreltijd
Временные интервалы могут быть сложными. Я бы рекомендовал прочитать некоторые документы djangos. Https://docs.djangoproject.com/en/1.7/topics/i18n/timezones/#naive-and-aware-datetime-objects – Tim