Django视图/ html输入-当不存在表单更新时,可以使用提交强制更新吗?

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

当看起来没有表单更新存在时,是否可以从表单本身强制使用html表单刷新模板?这是我认为是有效用例的简单示例。

视图产生随机数:-

def test_random_view(request):
    varid=randint(1,1000)
    context={
        "Randomid": varid
    }
    return render(request ,'test_random.html', {'context': context})

一个简单的页面应该生成此随机数:-

This doesn't work<br><br>
Here is a random number: <br>
{{ context.Randomid }}
<form method='get' action=''>
    <input type="text" name="input"  value="Here is an empty field"><br>
    <input type="submit" value="Update the random number"><br>
</form>

但是单击提交按钮后,随机数将不会更新。我假设这是因为它认识到尚未对表单进行任何更新,因此它不会传递回视图以生成新的随机数。您可以通过将随机数传递到文本输入中来“欺骗”它:-

This sort of works<br><br>
Here is a random number: <br>
<form method='get' action=''>
    <input type="text" name="input"  value={{ context.Randomid }}><br>
    <input type="submit" value="Update the random number"><br>
</form>

但是除了强制表单识别更新并将其传递回视图外,没有其他理由要存在此文本字段。

什么是更好的方法?

我应该在forms.py中创建表单,然后在视图中创建表单的实例吗?如果是这样,如何确保页面将刷新?

可以在页面本身中适当地完成吗?

顺便说一句,它的应用是让用户从列表中选择一个项目,并随机将其置于选择的顶部,然后单击以进行实际选择,或重复单击以获取任意数量的随机建议。

感谢您的帮助

菲尔

html django forms view form-submit
1个回答
0
投票
例如,如果您的urls.py看起来像这样:...

path('random/', views.test_random_view, name='random'),

...

您的模板如下所示:

This doesn't work<br><br> Here is a random number: <br> {{ context.Randomid }} <a href="{% url 'random' %}">Reset</a>

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