Я довольно новичок в Gjango и Python. Вот что у меня есть:GET-запрос от шаблона Django, работающего в Firefox, но не в Chrome
приложение/urls.py
urlpatterns = [ url(r'^upvote/(?P<id>[0-9]+)/$', views.upvote, name='upvote'), ]
views.py
def upvote(request, id): print(id) try: link = Link.objects.get(id=id) except: print('err') link.vote = link.vote + 1 print(link.vote) link.save() return HttpResponseRedirect('/news/')
И в шаблоне
<a href="/news/upvote/{{l.id}}/">Up Vote</a>
Теперь, когда я нажимаю на эту ссылку из Firefox, это работает. Файл urls.py проекта содержит url(r'^news/', include('news.urls')),
, поэтому эта ссылка работает. Я получаю вывод двух операторов print из функции views.py, и значение этого поля увеличивается в моей базе данных, как и ожидалось. Однако из Chromium я вижу очень странное поведение. Ссылка работает несколько раз. Иногда это срабатывает после большой паузы. Затем он просто перестает работать. Но из Firefox он работает каждый раз. Я перезапустил сервер много раз после очистки __pycache__
каталогов (не знаю, относится ли это или нет).
Когда я нажимаю с Firefox, я вижу следующие на выходе BUILTIN сервер разработки в Джанго каждый раз:
[08/May/2016 01:46:58] "GET /news/upvote/2/ HTTP/1.1" 302 0
[08/May/2016 01:46:58] "GET /news/ HTTP/1.1" 200 2778
1
7
что 1 и 7 являются выход печати() отчетности. Но когда я нажимаю из хрома, я вижу только это:
[08/May/2016 01:47:27] "GET /news/ HTTP/1.1" 200 2778
Функция просмотра не выполняется, как вы можете видеть. Как перейти к устранению неполадок?
Нет. Разве это не проблема на стороне сервера? Я не думаю, что кэш браузера имеет к этому какое-то отношение. Но я очищу кэш Хром, на всякий случай. И даст вам знать. – xparadigm
У меня было подобное поведение в Chrome, работающем с сервером Jekyll. Дайте мне знать, если это имеет значение. Также попробуйте режим инкогнито, если у вас есть плагины, которые мешают. –