Это то, что вы ищете?
Bitmap bmp = System.Drawing.Image.FromHbitmap(pBits);
Расширение аргумента Python может использоваться для решения этой проблемы:
kwargs = {
'{0}__{1}'.format('name', 'startswith'): 'A',
'{0}__{1}'.format('name', 'endswith'): 'Z'
}
Person.objects.filter(**kwargs)
Это - очень общая и полезная идиома Python.
Действительно сложный поиск формируется, обычно указывает, что более простая модель пытается вырыть, это - выход.
, Как, точно, Вы ожидаете получать значения для имени столбца и операции? Где Вы получаете значения 'name'
'startswith'
?
filter_by = '%s__%s' % ('name', 'startswith')
А "ищут" форму? Вы идете в - что? - выбирают имя из списка имен? Выбрать операцию из списка операций? В то время как открытый, большинство людей находит это сбивающим с толку и твердым к использованию.
, Сколько столбцов имеет такие фильтры? 6? 12? 18?
Определенные кнопки фильтра. Ожидать... Это - способ, которым работает администратор Django. Определенные фильтры превращены в кнопки. И тот же анализ как выше применяется. Несколько фильтров имеют смысл. Большое количество фильтров обычно означает своего рода первое нарушение нормальной формы.
Много подобных полей часто означает, что должно было быть больше строк и меньше полей.
Упрощенный пример:
В Django рассматривают приложение, я хотел список выборки HTML, показывающий зарегистрированным пользователям. Но потому что у нас есть 5 000 зарегистрированных пользователей, мне был нужен способ отфильтровать тот список на основе условий запроса (такой как просто люди, которые завершили определенный семинар). Для элемента обзора, чтобы быть допускающим повторное использование, мне было нужно для человека, создающего вопрос об обзоре быть в состоянии присоединить те критерии к тому вопросу (не хотите к твердому коду запрос в приложение).
решение, которое я предложил, не на 100% удобно для пользователя (требует, чтобы справка от технического человека создала запрос), но это действительно решает проблему. При создании вопроса редактор может ввести словарь в пользовательское поле, например:
{'is_staff':True,'last_name__startswith':'A',}
, Что строка хранится в базе данных. В коде представления это возвращается в как self.question.custom_query
. Значение этого является строкой что взгляды как словарь. Мы возвращаем его в реальный словарь с оценкой () и затем наполняем его в queryset с ** kwargs:
kwargs = eval(self.question.custom_query)
user_list = User.objects.filter(**kwargs).order_by("last_name")
at
и позволяют производительности удалить проверку, если это, как могут доказывать, является ненужным.
– Matthieu M.
17 October 2013 в 09:21