Простой ответ: вы наследуете классы форм, создаете свои собственные модификации и используете свою измененную версию.
Таким образом, вместо того, чтобы импортировать из taggit, вы бы импортировать из собственного forms.py
Я это много раз, когда я хочу, чтобы украсить/улучшить функциональность существующего приложения. Недостатком является то, что, если документация плохая, вам нужно прорваться через источник, чтобы узнать, что такое стек вызовов, и дерево наследования для функций, которые вы хотите изменить.
Недостатком этого подхода является то, что вы не можете изменять поведение внесенного приложения. Поэтому, если вы хотите, чтобы какая-либо внутренняя функциональность taggit использовала ваш пользовательский код, это трудно реализовать. Однако это очень редкий случай.
Если вы действительно хотите это сделать (как я должен был сделать один раз), вы можете клонировать источник и сохранять свою собственную копию. Создайте ветку с вашими изменениями и убедитесь, что вы пишете хорошие тесты.
Затем вы должны добавить этот код в проект django как свое собственное приложение; из-за правил поиска Python - он найдет вашу локальную копию и будет использовать ее вместо одной из каталога глобальных пакетов сайтов.
Если восходящий поток обновлен, вам необходимо сохранить свою копию, убедившись, что тесты не сбой при обновлении/переустановке.
Оформить заказ [Изменение/Расширение сторонних приложений django] (http://stackoverflow.com/a/8442736/2698552) – ChillarAnand