我想使用Django自定义模板标记来检查用户ID是否在数据库中。我们已经创建了一个自定义模板标签,该标签目前可以使用,但是我无法使其与表单一起使用。
目标是不要刷新整个页面,而只是显示此查询的结果。如何做到这一点?
HTML表单:
<form role="form" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="text">
<button>Check Me</button>
</form>
{{ test|testid:123 }} <!-- Works, shows True or False -->
过滤器:
@register.filter
def testid(value, test_id):
if Test.objects.filter(id=test_id).exists():
return True
return False
我试图进行查找,但是似乎大多数人都是通过实现iQuery来做到这一点的,只是使用表单或类似的东西,而我试图避免这种情况,并希望为此使用模板标签。
答案 0 :(得分:1)
Django仅是一个后端系统。它的参与在html模板层结束,即它不提供任何实时信息。默认情况下,所有交互都涉及到服务器的往返行程,即页面刷新。这并不意味着您无法在Django项目中进行实时Ajax交互,只是Django不会在那儿为您提供帮助,并且您也不会在Django文档中找到任何可以帮助的东西。
要在不刷新页面的情况下产生这些结果需要做更多的工作。在大多数情况下,我认为人们对实现该目标过于着迷。您将需要设置接收视图,编写javascript或jquery以发布到接收视图,将数据保存在接收视图中,并且还需要编写js来实时更新页面(假定后端保存)顺利。一切皆有可能,我们都已做到了,但请考虑是否值得。
如果绝对需要,请深入研究,因为这将需要大量的自定义代码和工具。