я знаю, что это не лучшая практика (я предполагаю, что кэширование может быть лучше), но я видел в коде, что значения модели Django был сохранен как глобальные переменные, как это в django_app/shared.py
:Джанго: Модели значения как глобальные переменные
VALS = MyModel.objects.values_list('id', flat=True)
CHOICES = [(x,x) for x in VALS]
В django/forms.py
from shared import CHOICES
class MyForm(forms.Form):
choice = forms.MultipleChoiceField(CHOICES, default='')
...
В django/views.py
:
def my_view(request):
....
form = MyForm(request.GET)
....
Я запускаю приложение, используя wsgi за nginx. Теперь я вижу, что даже если я сделал изменения в модели, которые не отражаются в форме на представлении. Опции всегда остаются неизменными. Получается ли он кэширован, потому что процесс uwsgi возникает из нескольких запросов. Я не мог понять. Пожалуйста помоги.
ОБНОВЛЕНИЕ: Как и ожидалось, это оказалось nginx. Я перезапустил nginx, и изменения были отражены. Теперь, поскольку он не обновлялся без перезапуска nginx, значит ли это, что он мог остаться таким навсегда? Я понимаю, что CHOICES будет обновляться, как только будет создан новый процесс uwsgi. BTW, мы используем файл uwsgi conf для конфигурации.
Заранее благодарен!
Вы пробовали перезапуска WSGI сервера (Nginx)? –