Дата слияния Время в Джанго ОРМ - PullRequest
0 голосов
/ 13 марта 2019

Я пытался объединить дату и время.Для этого я использовал datetime.combine.Но это дает AttributeError module 'datetime' has no attribute 'combine'

TimesheetEntry.objects.filter(
    timesheet_users = user_id
    ).order_by(
        '-id'
    ).annotate(
        timesheet_clock_in=datetime.combine('timesheet_clock_in_date', 'timesheet_clock_in_time') 
    ).annotate(
        timesheet_clock_out=datetime.combine('timesheet_clock_out_date', 'timesheet_clock_out_time')
    ).values_list(
        'timesheet_clock_in',
        'timesheet_clock_out',
        'timesheet_jobs',
        'timesheet_note',
        'timesheet_clock_in_by'
    )

Я знаю, что ошибка в annotate, но я не знаю, как ее решить.Запрос работает без annotate

Ответы [ 2 ]

3 голосов
/ 13 марта 2019

В дополнение к этому ответу используйте F() выражения as

<b>from django.db.models import F
from datetime import datetime</b>

TimesheetEntry.objects.filter(
    timesheet_users=user_id
).order_by(
    '-id'
).annotate(
    timesheet_clock_in=datetime.combine(<b>F('timesheet_clock_in_date'), F('timesheet_clock_in_time')</b>)
).annotate(
    timesheet_clock_out=datetime.combine(<b>F('timesheet_clock_out_date'), F('timesheet_clock_out_time')</b>)
).values_list(
    'timesheet_clock_in',
    'timesheet_clock_out',
    'timesheet_jobs',
    'timesheet_note',
    'timesheet_clock_in_by'
)
3 голосов
/ 13 марта 2019

Правильно ли вы импортировали datetime?

import datetime
# The datetime module

или

from datetime import datetime
# The datetime class in the datetime module

В первом случае вам следует позвонить datetime.datetime.combine (с 2x datetime). Во втором случае вы можете позвонить datetime.combine напрямую.

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