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

apa*_*des 4 forms django post get

我有一个应该处理提交表单的视图.模板中的HTML表单应该发送帖子,但视图只接收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'))
Run Code Online (Sandbox Code Playgroud)

模板:

<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我真的很难过,所以任何建议都会非常感激.谢谢.

kar*_*ikr 6

它可能正在发送,POST但你没有正确听.

if request.method == ['POST']:
Run Code Online (Sandbox Code Playgroud)

应该

if request.method == 'POST':
Run Code Online (Sandbox Code Playgroud)

要不就

if request.POST:
Run Code Online (Sandbox Code Playgroud)

还有一件事.

您可以使用@login_required装饰器而不是手动检查经过身份验证的用户.