"Могло бы быть достаточно" версии этого, встроен в Windows. Изучите вкладку "Recovery" свойств службы, как доступную через services.msc
.
можно действовать на сервисный сбой с:
"Запущенный, программа" могла быть маленьким сценарием, который отправляет почту, например.
, Если Вы хотите большее решение с панелью инструментов обзора и всеми, существует много доступных решений для системного мониторинга. Например, SolarWinds IPMonitor приходит на ум, или Nagios или Кактусы.
Поля формы легко настроить:
class UpperCaseField(forms.CharField):
def clean(self, value)
try:
return value.upper()
except:
raise ValidationError
в основном вы просто создаете класс, который наследуется от поля, которое больше всего напоминает то, что вы хотите, а затем переписываете метод clean () так, чтобы он возвращал ценность, которую вы хотите. Вот еще один пример:
class MyObjectField(forms.ModelChoiceField):
# in this case, 'value' is a string representing
# the primary key of a MyObject
def clean(self, value):
try:
return MyObject.objects.get(pk=value)
except:
raise ValidationError
пользовательские виджеты , с другой стороны, немного более полезны, но их немного сложнее сделать, потому что есть еще несколько методов, которые необходимо написать, чтобы они работали плавно.
Как всегда с открытым исходным кодом, вы многое узнаете, прочитав сам исходный код. См. Модуль django.forms.fields
, чтобы увидеть, как определены все различные поля формы - большинство из них уже являются подклассами других, поэтому вы можете просто воспроизвести это и изменить то, что вам нужно.
Это не учебник, но в документации django об этом немного говорится:
Если встроенные классы полей не удовлетворить ваши потребности, вы можете легко создать настраиваемые классы полей. Для этого просто создать подкласс django.forms.Field. Это только требования состоят в том, что он clean () и что его
__ init __ ()
метод принимает основные аргументы упомянутые выше (обязательно, метка, initial, widget, help_text).
Вы можете прочитать о чистом методе и увидеть пример в django docs . Опять же, не учебник, но полезный.
Я многому научился, читая код некоторых доступных проектов приложений django, таких как django-extensions , которые замещают поля формы и являются хорошими инструментами обучения (для мне, по крайней мере). Это может помочь вам начать работу.