不允许的方法(POST):/
Posted
技术标签:
【中文标题】不允许的方法(POST):/【英文标题】:Method Not Allowed (POST): / 【发布时间】:2022-01-23 12:31:24 【问题描述】:我正在尝试制作一个简单的单页商店。我制作了一个 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 函数放入其中再取出,同样的问题仍然存在。
【问题讨论】:
为什么您希望 Django 在您单击购买按钮时执行您的aBuy
视图?您正在尝试将 POST
发送到您的 ListView
,这是不受支持的(也不是您想要的)。
@Selcuk 因为它在<form></form>
?如何连接?
请提供您的 urls.py
How do I connect it
:这太宽泛了,无法在 Stack Overflow 评论中解释。我建议你先从教程中学习 Django 基础知识。
【参考方案1】:
您忘记了表单中的action
属性:
<form action="/path-to-post-url/" method="post">
% csrf_token %
form
<input type="submit" value="Submit">
</form>
你可以在这里Django Forms阅读更多关于模板和表格的信息。
【讨论】:
以上是关于不允许的方法(POST):/的主要内容,如果未能解决你的问题,请参考以下文章