Я сделал аналогичные вещи с WinRun4J , насколько я помню, он может быть коммерчески использован, потому что он лицензирован CPL. Проверено это сегодня: настройки имя процесса все еще работает (изначально это делалось на XP) с Windows 7.
Согласно веб-сайту, вы просто создаете ini-файл, который сообщает WinRun4J, что запускать:
main.class=org.something.MyMainClass
classpath.1=*.jar
(есть еще много параметров, вы можете установить, где JRE можно найти и многое другое)
На втором шаге вы копируете файл winrun4j.exe в то, что подходит вашему приложению:
copy winrun4j.exe yourapplication.exe
(Существует версия для Windows x64 тоже)
Затем у вас есть RCEDIT (поставляется с WinRun4j), добавьте ini в exe:
rcedit /N yourapplication.exe yourapplication.ini
Да, это описано в README
на GitHub . За занавесом TagField
- это ManyToManyField
, который указывает на модель TagModel
[GitHub] , и, таким образом, мы можем запросить отношение «многие ко многим», например:
queryset_list = queryset_list.filter(
Q(title__icontains=query) |
Q(content__icontains=query) |
Q(tags__name=query)
).distinct()
Здесь мы таким образом фильтруем наличие тега с name
, который является именно запросом. Но мы можем добавить __iexact
[Джанго-док] , __contains
[Джанго-док] или, [1116 ] __icontains
[Django-doc] поиск, чтобы сделать поиск более сложным. Например:
queryset_list = queryset_list.filter(
Q(title__icontains=query) |
Q(content__icontains=query) |
Q(tags__name__icontains=query)
).distinct()
будет соответствовать всем объектам, для которых есть тег, имя которого содержит подстроку, которая, игнорируя регистр, равна тому, что мы запрашиваем. Так что если вы пометили что-то с помощью 'foobar'
, то это будет совпадать и с запросом 'Oo'
.