我需要通过单击按钮生成密钥并显示生成的密钥。 我的观点在这里:
@user_passes_test(lambda u: u.is_superuser)
def get_key(request):
if(request.GET.get('create_new_key')):
for_whom = request.GET.get('for_whom')
create_key(for_whom)
created_keys = RegistrationKey.objects.all()
return render(request, 'registration/get_key.html', {
'created_keys':created_keys,
})
模板:
<!DOCTYPE html>
<html>
{% include "core/header.html" %}
<body>
<form action="#" method="get">
<input type="text" name="for_whom"/>
<input type="submit" class="btn" value="Create" name="create_new_key">
</form>
<ul>
{% for created_key in created_keys %}
<p>{{created_key.key}}</p>
<p>{{created_key.for_whom}}</p>
{% endfor %}
</ul>
</body>
{% include "core/footer.html" %}
</html>
现在,当我点击页面http://127.0.0.1:8000/get_registration_key/
上的按钮时,密钥正在生成,但现在我处于http://127.0.0.1:8000/get_registration_key/?for_whom=&create_new_key=Create#
,因此刷新此页面会生成更多密钥。
我真的需要从url中删除这些参数,但不明白如何。
答案 0 :(得分:0)
创建新密钥以清除查询字符串时,应将视图修改为redirect
到同一视图,仅当没有render
参数时,才应将for_whom
修改为@user_passes_test(lambda u: u.is_superuser)
def get_key(request):
if request.GET.get('create_new_key'):
for_whom = request.GET.get('for_whom')
create_key(for_whom)
return redirect('get_key') # Use the name in your urls.py
else:
created_keys = RegistrationKey.objects.all()
return render(request, 'registration/get_key.html', {
'created_keys':created_keys,
})
:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/