Метод 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
, если вы хотите получить только ответ со стороны сервера.