Метод не разрешен (POST): /
Я пытаюсь сделать простой одностраничный магазин. Я сделал ListView для товаров и он рендерится без проблем. Корзина будет в модальном окне. Я сделал кнопку купить, но когда я нажимаю на нее, она говорит:
Method Not Allowed (POST): /
Method Not Allowed: /
[22/Dec/2021 11:40:04] "POST / HTTP/1.1" 405 0
Вот мои взгляды:
from django.shortcuts import render
from django.views.generic import ListView
from .models import Item
from .forms import AddCartForm
class ItemsListView(ListView):
model = Item
template_name = 'main_page.html'
def aBuy(request):
form = AddCartForm
if request.method == 'POST':
print('BUY BUY')
return render(request, 'main_page.html', {'form':form})
Это форма:
class AddCartForm(ModelForm):
class Meta:
model = Item
fields = ['price', 'quantity']
Форма в html:
<div class="col" style="text-align:left">
<form name="buy" method="POST">
{% csrf_token %}
{{ form }}
<input type="submit" class="btn btn-info butt" value="Buy">
</form>
</div>
Я не могу продолжать делать логику для добавления его в будущую корзину из-за этого. print('BUY BUY')
- это только для тестирования.
В url файле только главная страница с ItemListView.as_view
. Я пробовал вставлять функцию aBuy в нее и из нее, та же проблема остается.
Вы забыли атрибут action
в вашей форме:
<form action="/path-to-post-url/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
Подробнее о шаблонах и формах вы можете прочитать здесь Django Forms.