Python Django:如何防止清除表单字段?

Python Django: How to prevent form field from clearing?

我正在使用 Python Django,我有一个非常简单的表单,由一个按钮和一个输入字段组成。问题是在我提交表单后,出于某种原因清除了输入字段。那么如何防止它被清除?

这是我的 python 文件:

def index(request):
    # print(f"its me {os.getcwd()}")
    txt = request.GET.get("some_txt")
    if (request.GET.get('mybtn')):
        print(f"THIS IS THE TEXT VALUE: {txt}")
    else:
        print("Has not been clicked")
    return render(request, "main/index.html")

这是 HTML 文件:

<form action="#" method="get">
        {% csrf_token %}
        <input type="text" name="some_txt">
        <button type="submit" class="btn btn-primary" value="mybtn" name="mybtn">Submit</button>

</form>

您每次都呈现一个新表单,因此如果您想用旧数据填充表单,请将其传递给模板:

def index(request):
    txt = request.GET.get('some_txt', '')
    if (request.GET.get('mybtn')):
        print(f'THIS IS THE TEXT VALUE: {txt}')
    else:
        print('Has not been clicked')
    return render(request, 'main/index.html', <strong>{'txt': txt}</strong>)

在表单中,您将其用作值:

<form action="" method="get">
    <input type="text" name="some_txt"<strong> value="{{ txt }}"</strong>>
    <button type="submit" class="btn btn-primary" value="mybtn" name="mybtn">Submit</button>
</form>

或明确功能:

def index(request):
    txt = request.GET.get('some_txt', '')
    if request.GET.get('mybtn') == 'mybtn2':
        txt = ''
    else if request.GET.get('mybtn'):
        print(f'THIS IS THE TEXT VALUE: {txt}')
    else:
        print('Has not been clicked')
    return render(request, 'main/index.html', <strong>{'txt': txt}</strong>)

因此在 HTML 侧我们使用第二个按钮:

<form action="" method="get">
    <input type="text" name="some_txt" value="{{ txt }}">
    <button type="submit" class="btn btn-primary" value="mybtn" name="mybtn">Submit</button>
    <button type="submit" class="btn" <strong>value="mybtn2"</strong> name="mybtn">Reset</button>
</form>