2015-04-09 2 views
1

Я прочитал, что переменная параметров не должна изменяться во время выполнения, также упоминается here. Однако, если мы определяем переменную пользовательских настроек, ее можно изменить во время выполнения? Есть ли недостатки, если я это сделаю. Ex: settings.CUSTOM_VAR = '20' #done in one of the viewsИзменение переменной пользовательских настроек в django во время выполнения

+0

Проблема: Django не может распознать эти изменения в некоторых случаях. Например, представьте, что вы меняете INSTALLED_APPS во время выполнения, эти параметры определяют, какие модули могут быть импортированы и какие модули не могут ... были бы полным беспорядком. – lapinkoira

+0

@lapinkoira Спасибо за ваш ответ. Это переменные, которые определяет django, но что, если у меня есть пользовательская переменная типа MYVARIABLE = 'xyz'', и я изменяю значение этой переменной, это вызовет проблему? – Dalon

+0

Вы могли бы это сделать, но это было бы перезаписано и не предлагалось. Мне пришлось сделать что-то подобное, и я сделал это с использованием моделей настроек сайта в БД, связанных с клиентами, и т. Д. – lapinkoira

ответ

0

Это нехороший подход. После перезагрузки или обновления вашего сервера обновленная настройка будет перезаписана для переменной, определенной в настройках.

Вы можете создать собственную модель настроек с изменяемыми настройками и использовать ее или получить некоторые конфигурационные приложения, такие как django-constance или django-solo, или что-то еще и изменить их на законных основаниях.

+0

Спасибо. Это хороший момент, когда я перезапускаю сервер, я могу потерять значения. Можете ли вы сказать мне, как я могу установить несколько пользовательских настроек переменных из другого файла, которые могут быть загружены при запуске сервера? – Dalon

+0

@ Далон, почему вы хотите загрузить что-то из файла? Почему не использовать базу данных для настроек? И когда вы будете хранить настройки в db, вы можете легко изменить их вручную или из кода или из команд управления, которые будут анализировать некоторые файлы, если вы этого хотите. – amureki

+0

На самом деле я планирую делать то же самое, хранить его в db, а затем извлекать. Спасибо за ваш ввод – Dalon

Смежные вопросы