Django:request.POST.get from form data not working work

问题描述 投票:0回答:1

我一直在尝试提出解决方案,并且已经在网上搜索了几个小时。希望你们能帮助我在我的代码中找到问题!

我正在尝试在Django(一个简单的文本字段)中实现表单。一旦用户在该字段中提交了文本数据,我就希望它发布数据,并希望下一个视图检索该数据并将其打印在屏幕上。详细信息:我希望用户在页面home.html上的表单中输入一些文本,然后提交它,然后用户输入将被打印在下一页predict.html中(当然,我计划将inpur之间,但首先,我希望至少在第二页上打印文本。

这是我的代码:

views.py

from django.shortcuts import render
from django.http import HttpResponse
from .forms import NameForm
from django.template import RequestContext

def index(request):
    return render(request, 'personal/home.html')

def predicted(request):
    predicted = request.POST.get('data')
    return render(request, 'personal/predicted.html', {"predicted": predicted})

def get_name(request):
    if request.method == 'POST':
        if form.is_valid():
            return predicted(request)
    else:
        form = NameForm()
    return render(request, 'home.html', {'form': form})

forms.py

from django import forms

class NameForm(forms.Form):
    data = forms.CharField(label='Your text:', max_length=100)

home.html

{% extends "personal/header.html" %}
{% block content %}
<p>Please input your text:</p>
<br>
<form action="/predicted/" method="POST">
    {% csrf_token %}
    <label for="data">Your text: </label>
    <input id="data" type="text" name="data">
    <input type="submit" value="Submit!">
</form>
{% endblock %}

predicted.html

{% extends "personal/header.html" %}
{% block content %}
<p><a>Your predicted text:
<br>
    {{ predicted }} </a></p>

{% endblock %}

我想错误与我写错的其他几行结合在predicted = request.POST.get('data')行中的某个地方……除此之外,其他所有内容似乎都可以正常工作。我想保留方法POST(而不是GET),因为输入表单中的数据可能会变得很大,并且这将导致hughe URL成为predict.html。

非常感谢您的帮助!

django python-3.x forms post
1个回答
0
投票

我终于设法提出了一个可行的解决方案。我不知道这是否是最漂亮的解决方案,但我很高兴它能起作用。我的代码中的所有内容都是正确的,除了views.py

© www.soinside.com 2019 - 2024. All rights reserved.