Метод post не работает в одностраничном сайте django

Я изучаю Django на youtube. Сейчас я практикуюсь на проекте, но проблема в том, что в учебнике youtube использовался многостраничный сайт django, в то время как я разрабатываю одностраничный сайт, где если вы нажмете на пункт меню, он прокрутится вниз к разделу, а не откроет новую страницу. Я создал только одно приложение. Я действительно запутался, поскольку у меня только 2 html-страницы (одна главная и другая с разным оформлением для блога), я действительно не знаю, как упомянуть страницы в views.py. Я подключил метод post к функции home, но post не работает.

  views.py:

from django.shortcuts import render, HttpResponse
from django.http import HttpResponse

# Create your views here.

def home(request):
    if request.method == "POST":
        print("This is post")
    return render(request, 'index.html')

def blog(request):
    if request.method=="POST":
        print("This is post")
    return render(request, 'blog-single.html')

urls.py from app:

from django.contrib import admin
from django.urls import path, include
from portfolio import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('home', views.home, name='home'),


    
    

]```




При использовании метода POST вы должны отправить body или несколько pathparam вместе с запросом.

У вас есть два решения:

Первый : добавьте parameter к вашему запросу

def home(request,id):
    if request.method == "POST":
        print("This is post")
    return render(request, 'index.html')

def blog(request,id):
    if request.method=="POST":
        print("This is post")
    return render(request, 'blog-single.html')

urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/<int:pk>', views.home, name='home')]

Секунда Измените POST на GET, если вы хотите получить только ответ со стороны сервера.

Вернуться на верх