2013-10-12 5 views
0

Мне нужно отфильтровать поле Datetime, но мне нужно, чтобы взять час, а не только дату, как это делает сейчас, я не считаю время только дату.Отфильтровать по Datetime

view.py

@login_required(login_url='/InicieSesion') 
    def adendum_Detalle(request, credencial, fecha): 
    print 'subsecuente detalle' 
    date_for_search = datetime.datetime.strptime(fecha, '%Y%m%d').date() 
    print date_for_search 
    formulario = get_object_or_404(adendum,adendum_credencial=credencial,adendum_fecha=date_for_search) 
    return render(request, 'adedetalle.html', {'formulario': formulario}) 

Я пытался добавить дату здесь (Fecha, '% Y% м% d'), чтобы преобразовать его в строку, но это не сработало.

+2

Не могли бы вы перефразировать то, что вы хотите сделать? Я не уверен, что вы подразумеваете под «но мне нужно, чтобы взять час, а не только дату». Вы говорите, что вам нужно фильтровать по дате и часу, на час или что? И когда вы имеете в виду фильтр, действительно ли вы используете '.filter' Django для запроса, чтобы возвращать несколько объектов или' .get', как вы использовали здесь, чтобы получить один объект? – Joseph

ответ

0

Вы можете фильтровать по частям DateTime в Django с помощью datetimefield__year, datetimefield__day и т.д.

Если вы пытаетесь фильтровать как день и час, вы можете сделать:

formulario = get_object_or_404(adendum,adendum_credencial=credencial, 
    adendum_fecha__year=date_for_search.year, 
    adendum_fecha__month=date_for_search.month, 
    adendum_fecha__day=date_for_search.day, 
    adendum_fecha__hour=1) 

I чувствуйте, что может быть лучший способ сделать это, возможно, создав объект datetime на основе даты_for_search, который вы сочетаете с часом, который вы ищете, но вам придется игнорировать минуты/секунды в этом случае, и я не могу сказать, что я совершенно уверен, как это сделать. Это должно заставить вас начать, хотя!

Смежные вопросы