Если вы используете singleton, вы столкнетесь с проблемой безопасности потоков. Например. Ваше приложение выполняется в нескольких потоках, один поток обрабатывает один запрос, поэтому ваш глобальный объект должен быть для каждого потока, но синглтон уникален для каждого процесса.
Вы можете использовать threading.local
технику, как описано в этом вопросе . Он предоставит вам объект, который уникален для каждого потока и так для каждого запроса.
Однако это не рекомендуется, поэтому не используйте глобальные переменные
Для вашей ситуации с виджетами в Django есть настройки медиа в виджетах и формах. https://docs.djangoproject.com/en/1.3/topics/forms/media/
Объекты мультимедиа также можно добавлять вместе. При добавлении двух объектов мультимедиа результирующий объект мультимедиа содержит объединение мультимедиа из обоих файлов.
Так что вы можете бороться с дубликатами с помощью средств массовой информации.
Также вы можете объединить медиа прямо в шаблон
{{ form.media|add:info_form.media|add:discount_form.media }}