【发布时间】: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 基础知识。
标签: python django e-commerce