使用userinput调用Django模板标记

使用userinput调用Django模板标记,django,django-templates,Django,Django Templates,我想使用Django自定义模板标记来检查用户id是否在数据库中。到目前为止,我们已经创建了一个自定义模板标记,但我无法让它与表单一起工作 目标是不刷新整个页面,而只是显示此查询的结果。如何才能做到这一点 HTML格式: <form role="form" method="post" enctype="multipart/form-data"> {% csrf_token %} <input type="text"> <button>Ch

我想使用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 -->

我试图查找这个,但似乎大多数人都是通过实现iQuery来实现的,只是使用表单或类似的东西,我试图避免这种情况,并希望为此使用模板标记。

Django只是一个后端系统。它的参与在html模板层结束,即它不提供任何实时性。默认情况下,所有交互都涉及到服务器的往返,即页面刷新。这并不意味着你不能在Django项目中进行实时Ajax交互,只是Django不会在这方面帮助你,你也不会在Django文档中找到任何帮助

要在不刷新页面的情况下生成这些结果,需要做更多的工作。在大多数情况下,我认为人们过于热衷于实现这个目标。您需要设置一个接收视图,编写javascript或jquery以发布到接收视图,在接收视图中保存数据,并且还需要编写js以实时更新页面(假设后端保存顺利)。所有的可能,我们都做到了,但要考虑它是否值得。
如果这是一个绝对的需求,那就深入挖掘吧,因为它需要相当多的自定义代码和工具。

您可以再编写一个函数,然后使用ajax调用该函数。ajax加载了页面刷新。你可能是对的。我仍然希望得到一些工作,但最终决定使用一个单独的检查和结果视图。
@register.filter
def testid(value, test_id):
    if Test.objects.filter(id=test_id).exists():
        return True
    return False