I have a question
Calling jquery ajax gives me a 405(Method Not Allowed:) error The error message doesn't tell me why. The request itself seems to be the cause of the problem. if you know what's the problem for this problem thanks for let me know~!
ajax
$('body').on('click', '.skill_search_button', function (e) {
e.preventDefault();
window.history.pushState("", "", '/wm/myshortcut/')
const search_word = $(".skill_input_box").val();
console.log("search_word : " + search_word);
$("input:radio.search").each(function () {
if (jQuery(this).is(":checked")) {
search_option = this.id;
} else {
// alert("check")
}
});
$.ajax({
type: "POST",
url: 'search_by_id_and_word/',
data: {
'search_word': search_word,
'search_option': search_option,
'page_user': "{{page_user}}",
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success: function (result) {
window.history.pushState("", "", '/wm/myshortcut/')
$("#wm_list_area_for_popup").html("")
$("#wm_list_area_for_popup").append(result)
}
});
});
url
path('myshortcut/search_by_id_and_word/' , views.searchSkilNoteViewByIdAndWord.as_view(), name="search_by_id_and_word"),
view
class searchSkilNoteViewByIdAndWord(ListView):
model = MyShortCut
paginate_by = 10
template_name = 'wm/MyShortCut_list_for_search.html'
def get_queryset(self):
if request.method == "POST" and request.is_ajax():
search_user_id = request.user
search_word = request.POST['search_word']
search_option = request.POST['search_option']
print("search_user_id : ", search_user_id)
print("search_word : ", search_word)
print("search_option : ", search_option)
user = User.objects.get(username=search_user_id)
qs = MyShortCut.objects.filter(Q(author = user)).filter(Q(title__icontains=search_word) | Q(content1__icontains=search_word) | Q(content2__icontains=search_word)).order_by('-category')
return qs
else:
qs = MyShortCut.objects.filter(Q(author = user)).filter(Q(title__icontains=search_word) | Q(content1__icontains=search_word) | Q(content2__icontains=search_word)).order_by('-category')
return qs