代码之家  ›  专栏  ›  技术社区  ›  creyD Ratha Pech

使用userinput调用Django模板标记

  •  0
  • creyD Ratha Pech  · 技术社区  · 7 年前

    我想使用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 回复  |  直到 7 年前
        1
  •  1
  •   shacker kravietz    7 年前

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

    要在不刷新页面的情况下生成这些结果,需要做更多的工作。在大多数情况下,我认为人们都过于迷恋这个目标。您需要设置一个接收视图,编写javascript或jquery以发布到接收视图,在接收视图中保存数据,还需要编写js以实时更新页面(假设后端保存顺利)。所有的可能,我们都已经做到了,但是要考虑它是否值得。

    如果这是一个绝对的需求,那就去挖掘吧,因为它需要相当多的定制代码和工具。

    推荐文章