2013-08-23 2 views
1

я следующая проблема:Помещенный параметр forms.DateField в метод просмотра

В моей forms.py я следующие строки в классе:

date_from = forms.DateField(label='date', initial='1800-01-01', widget=SelectDateWidget(years=[y for y in range(1450,2050)])) 

В шаблоне я могу выбрать конкретную дату. Этот параметр я хочу передать мой view.py файл следующим способом:

def adv_search(request): 
    objects = None 
    if request.GET.get('key'): 
     form = AdvancedSearchForm(request.GET) 
     if form.is_valid(): 
      repo = Repository() 
      objects = list(repo.find_objects(date__gt='2012-07-23'))        
     return render(request, 'templates/adv_search.html', {'form': form, 'objects': objects }) 
    return render(request, 'templates/adv_search.html', {'form': AdvancedSearchForm(), 'objects': objects}) 

В objects = list(repo.find_objects(date__gt='2012-07-23')) я есть date__gt с конкретной даты.

Как я могу добавить к date__gt дате от form.Date.Field?

Спасибо.

ответ

1

Это в form.cleaned_data:

Вы можете получить доступ к нему, выполнив:

objects = list(repo.find_objects(date__gt=form.cleaned_data['date_from'])) 

Это при условии, что ваша форма декларации выглядит примерно так:

class AdvancedSearchForm(forms.Form): 
    date_from = forms.DateField(...) 
    ... 
+0

Спасибо за быстрый ответ. После добавления кода я повторяю следующую ошибку: «TypeError: аргумент типа« datetime.date »не итерируется» –

+0

@andy_bu Это, вероятно, проблема с кодом из 'find_objects' - можете ли вы опубликовать этот код? –

+0

Я использую библиотеку Eulfedora. find_objects - один из методов. Hier - это код: 'code'def find_objects (self, terms = None, type = None, chunksize = None, ** kwargs): " "" Найти объекты в Fedora. Запрос поиска должен быть сгенерирован с помощью ключевого слова args, на основе полей в документации Fedora. По умолчанию запрос использует поиск (~) для всех условий поиска. Вызовы : meth: 'ApiFacade.findObjects'. Результаты, кажется, возвращаются последовательно в порядке возрастания PID. репозиторий .find_objects (date__gt = '20010302') 'code' Я не могу поместить весь метод в комментарий, чтобы долго. –