Django View 从应该发送 POST 的表单接收 GET 请求

标签 django forms post get

我有一个应该处理表单提交的 View 。模板中的 HTML 表单应该发送一个帖子,但是 View 只收到一个 GET 请求。

看法:

def eventSell(request, id):
    event = Event.objects.get(pk = id)
    if request.user.is_authenticated():
        print request.user 
        if request.method == ['POST']:
            print 'post'
            form = ListingForm(request.POST)
            if form.is_valid():
                print 'form is valid'
                user = request.user
                price = request.POST['price']
                t = Object(event = event, price = price, seller = user, date_listed = timezone.now())
                t.save()
                return HttpResponseRedirect(reverse('app:index'))
        else:
            print 'get'
            form = ListingForm()
        return render_to_response('app/list.html', {'form' : form, 'event' : event}, context_instance = RequestContext(request))
    else:
        return HttpResponseRedirect(reverse('allauth.accounts.views.login'))

模板:
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>

我真的很难过,所以任何建议都将不胜感激。谢谢。

最佳答案

它可能正在发送 POST但是,您没有正确聆听。

if request.method == ['POST']:

应该
if request.method == 'POST':

要不就
if request.POST:

还有一件事。

您可以使用 @login_required decorator而不是手动检查经过身份验证的用户。

关于Django View 从应该发送 POST 的表单接收 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18237037/

相关文章:

Django Rest Framework 删除 csrf

python - Django渲染函数: template not printing variable

json - 如何获取主键相关字段嵌套序列化程序 django rest 框架的所有值

javascript - 网站中的一些 html 按钮如何在不调用 JavaScript 函数的情况下执行操作?

php - PHP一键提交多个表单

Java从帖子中解析多维数组

django - 如何在 Django 中显示不同时区的所有日期时间对象

html - 当我的表单自动调整大小时,如何阻止网站元素被推送?

java - URLRewrite 过滤器不适用于多部分表单

php - 此分发未配置为允许 HTTP 请求