Вы можете построить поиск динамически:
status = form.cleaned_data['status']
start_date = form.cleaned_data['start_date']
end_date = form.cleaned_data['end_date']
company = self.request.user.userprofile.user_company
lookups = (Q(job_company=company) | Q(job_status=status)
if start_date:
lookups = lookups | Q(job_created_on__gt=start_date)
if end_date:
lookups = lookups | Q(job_created_on__lt=end_date)
Jobs.objects.filter(lookups)
Поиск job_created_on__range
не нужен.
Кроме того, проверьте, действительно ли вы хотите job_created_on__gt/__lt
или job_created_on__gte/__lte
.
Направляющие несомненно поддерживают устройство хранения данных сессии базы данных.
В config/environment.rb, некомментарии
# config.action_controller.session_store = :active_record_store
Исследование \actionpack-2.2.2\lib\action_controller\session\active_record_store.rb показывает что CGI:: Сессия:: ActiveRecordStore:: Сессия наследовалась ActiveRecord:: Основа.
Таким образом в конце config/environment.rb, необходимо смочь сказать
CGI::Session::ActiveRecordStore::Session.establish_connection(
:adapter => "mysql",
:host => "otherserver",
:username => "session_user",
:password => "123ABC",
:database => "sessions")
или
CGI::Session::ActiveRecordStore::Session.establish_connection(:sessions)
использовать подключение, определенное в config/database.yml
Например, добавьте к config/database.yml:
sessions_development:
adapter: mysql
host: otherserver
username: sessions_user
password: 123ABC
database: sessions
Добавьте в конец config/environment.rb
CGI::Session::ActiveRecordStore::Session.establish_connection("sessions_#{RAILS_ENV}")
В документах направляющих для конфигурации сессии (http://api.rubyonrails.org/classes/ActionController/SessionManagement/ClassMethods.html#M000312) говорится, что это единственные опции: http://api.rubyonrails.org/classes/ActionController/Base.html#M000523. Так как опция, для которой база данных использовать не перечислена, это, вероятно, не существует.
Мы можем получить некоторое разъяснение по поводу Вашего вопроса? У Вас есть несколько, отличающиеся, приложения для направляющих, что Вы хотите использовать то же хранилище сессии? Я спрашиваю, потому что Вы упоминаете SSO и несколько серверов приложений.