#jquery #ajax #django #csrf #django-csrf
#jquery #ajax #django #csrf #django-csrf
Вопрос:
Я создаю приложение для часто задаваемых вопросов. На странице сведений о моей статье я пытаюсь внедрить систему голосования. Цель состоит в том, чтобы позволить пользователю проголосовать за статью, если они сочтут ее полезной. Я не хочу, чтобы страница обновлялась, когда пользователь нажимает кнопку «Проголосовать». Я решил использовать вызов Ajax из шаблона по URL-адресу для UpdateView.
Django требуется передача токена csrf. Проблема, с которой я сталкиваюсь, — это 405 (Method Not Allowed)
ошибка. Я проверил в настройках своей сети в chrome dev, что токен csrf генерируется и назначается в заголовке http. Я думаю, что проблема может заключаться в представлении, но все, что я пробовал до сих пор, оказалось неудачным. Любое направление было бы полезно.
РЕДАКТИРОВАТЬ ОБНОВИТЬ:
Я использую Django 1.10
URL-адрес:
from django.conf.urls import url
from faq.views import *
urlpatterns = [
url(r'^ironfaq/
Сценарий шаблона:
{% block scripts %}
<script>
$(document).ready(function(){
var csrftoken = Cookies.get('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) amp;amp; !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
function post_call(vote_data){
var data = {vote_type: vote_data};
var id = {{ object.id }};
$.ajax({
url: "/ironfaq/article/vote/" id "/",
type: "POST",
data: data,
}).done(function() {
console.log("POST!");
});
}
var vote_up = "vote_up";
var vote_down = "vote_down";
var thumbs_up = $('#thumbs_up');
var thumbs_down = $('#thumbs_down');
thumbs_up.on('click', function(){
post_call(vote_up)
});
thumbs_down.on('click', function(){
post_call(vote_down)
});
});
</script>
{% endblock %}
Представление:
class ArticleVoteView(UpdateView):
model = Article
fields = []
def form_valid(self, form):
article = form.save(commit=False)
vote_type = self.request.POST.get('vote_type')
if vote_type == 'vote_up':
article.vote_up = article.vote_up 1
article.save()
elif vote_down == 'vote_down':
article.vote_down = article.vote_down 1
article.save()
data = {'status': 'success', 'vote_type': vote_type, 'yes_count': article.vote_up,
'total_votes': article.total_votes()}
return HttpResponse(json.dumps(data))
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
url(r'^ironfaq/(?P<topic_slug>[w-] )/(?P<section_slug>[w-] )/(?P<pk>d )/
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, DashboardView.as_view()),
url(r'^ironfaq/(?P<slug>[w-] )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionView.as_view()),
url(r'^ironfaq/(?P<topic_slug>[w-] )/(?P<section_slug>[w-] )/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
,
ArticleDetailView.as_view(), name="faq-article-detail"),
url(r'^ironfaq/topic/create/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, TopicCreateView.as_view()),
url(r'^ironfaq/section/create/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionCreateView.as_view()),
url(r'^ironfaq/(?P<topic_pk>d )/article/create/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, ArticleCreateView.as_view()),
url(r'^ironfaq/topic/update/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, TopicUpdateView.as_view()),
url(r'^ironfaq/section/update/(?P<pk>d )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionUpdateView.as_view()),
url(r'^ironfaq/article/update/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, ArticleUpdateView.as_view()),
url(r'^ironfaq/topic/delete/(?P<pk>d )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, TopicDeleteView.as_view()),
url(r'^ironfaq/section/delete/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionDeleteView.as_view()),
url(r'^ironfaq/article/delete/(?P<pk>d )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, ArticleDeleteView.as_view()),
url(r'^ironfaq/article/vote/(?P<pk>d )$/', ArticleVoteView.as_view()),
]
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты - начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается - используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
,
ArticleDetailView.as_view(), name="faq-article-detail"),
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, DashboardView.as_view()),
url(r‘^ironfaq/(?P<slug>[w-] )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionView.as_view()),
url(r‘^ironfaq/(?P<topic_slug>[w-] )/(?P<section_slug>[w-] )/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
,
ArticleDetailView.as_view(), name=«faq-article-detail»),
url(r‘^ironfaq/topic/create/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, TopicCreateView.as_view()),
url(r‘^ironfaq/section/create/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionCreateView.as_view()),
url(r‘^ironfaq/(?P<topic_pk>d )/article/create/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, ArticleCreateView.as_view()),
url(r‘^ironfaq/topic/update/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, TopicUpdateView.as_view()),
url(r‘^ironfaq/section/update/(?P<pk>d )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionUpdateView.as_view()),
url(r‘^ironfaq/article/update/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, ArticleUpdateView.as_view()),
url(r‘^ironfaq/topic/delete/(?P<pk>d )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, TopicDeleteView.as_view()),
url(r‘^ironfaq/section/delete/(?P<pk>d )/
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, SectionDeleteView.as_view()),
url(r‘^ironfaq/article/delete/(?P<pk>d )/Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).
, ArticleDeleteView.as_view()),
url(r‘^ironfaq/article/vote/(?P<pk>d )$/’, ArticleVoteView.as_view()),
]
Сценарий шаблона:
Представление:
Комментарии:
1. Django не любит URL-адреса без завершающей косой черты — начните с этого, так как это может привести к некоторым перенаправлениям. Если это не поможет, вы всегда можете попытаться перегрузить
dispatch
метод views, чтобы узнать, какой запрос создается — используйтеpdb
в этом методе.2. Вы уверены, что URL-адрес обрабатывается этим представлением? Пожалуйста, покажите свои шаблоны URL.
3. Внесли правку, чтобы отобразить все URL-адреса.
Ответ №1:
Похоже, что ваш post-запрос /ironfaq/article/vote/<id>
сопоставляется с этим шаблоном URL:
Поскольку подробные представления обрабатывают только запросы get, ваш post-запрос вызывает ответ 405.
Вам либо нужно изменить дизайн ваших шаблонов URL-адресов, чтобы они не конфликтовали, либо переместить шаблон faq-article-detail
URL-адреса ниже шаблона URL-адреса голосования (и любых других, с которыми он сталкивается).