Изменения в Джанго urls.py не отражается в сети


Я запускаю приложение Django, используя NGINX и UWSGI.

Мои URLpatterns раньше были такими:

urlpatterns = [
    url(r'^$', views.index),
    url(r'^binaryQuestionApp/',include('binaryQuestionApp.urls')),
    url(r'^pointlocations/',include('pointlocations.urls')),
    url(r'^attributesFromPointsApp/',include('attributesFromPointsApp.urls')),
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

И все же я хочу изменить его следующим образом:

urlpatterns = [
    url(r'^$', views.index),
    url(r'^collections/',views.collections),                  ## new line ##
    url(r'^binaryQuestionApp/',include('binaryQuestionApp.urls')),
    url(r'^pointlocations/',include('pointlocations.urls')),
    url(r'^attributesFromPointsApp/',include('attributesFromPointsApp.urls')),
    url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Тем не менее, после нажатия этого на мой сервер (и файл .py действительно меняется на сервере) я последовательно получаю 404-ю страницу Django:

Using the URLconf defined in data_collection_project.urls, Django tried these URL patterns, in this order:
^$
^binaryQuestionApp/
^pointlocations/
^attributesFromPointsApp/
^admin/
^media/(?P<path>.*)$
The current URL, randomurltoget404page, didn't match any of these.
Если я изменю что-то еще, ради тестирования, я могу заставить это изменение работать. Например, я могу внести изменения в свой .html-файл, на который url(r'^$', views.index), в конечном итоге указывает, что обновление на моем сайте.

Как заставить Django обновить URLpatterns? Связанные с этим вопросы говорят мне перезапустить uwsgi или nginx, которые я пытался использовать sudo service uwsgi restart безрезультатно.

1 2

1 ответ:

Как вы правильно отметили в своем вопросе, вам необходимо перезагрузить/перезапустить службу uWSGI после изменения кода.

Если это не работает, служба загружает кэшированные данные и не перезагружает ваши изменения. Чтобы очистить кэшированные данные, удалите все или соответствующий файл *.pyc и снова перезапустите службу.

В вашем случае удалите urls.pyc и затем перезагрузите с sudo service uwsgi restart