【问题标题】:Method Not Allowed (POST): /不允许的方法(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 因为它在&lt;form&gt;&lt;/form&gt;?如何连接?
  • 请提供您的 urls.py
  • How do I connect it:这太宽泛了,无法在 Stack Overflow 评论中解释。我建议你先从教程中学习 Django 基础知识。

标签: python django e-commerce


【解决方案1】:

您忘记了表单中的action 属性:

<form action="/path-to-post-url/" method="post"> 
  {% csrf_token %} 
  {{ form }} 
  <input type="submit" value="Submit">
</form>

你可以在这里Django Forms阅读更多关于模板和表格的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-17
    • 2014-05-23
    • 1970-01-01
    • 2021-02-09
    • 2020-11-13
    • 2020-06-18
    • 2017-09-17
    • 2021-07-07
    相关资源
    最近更新 更多