Django: передача токена csrf через ajax в метод UpdateView 405 не найдена ошибка

#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-адреса голосования (и любых других, с которыми он сталкивается).