我想使用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来实现的,只是使用表单或类似的东西,我试图避免这种情况,并希望使用模板标记。
发布于 2019-03-15 07:12:17
Django只是一个后端系统。它的参与结束于html模板层,即它不提供任何实时的东西。默认情况下,所有交互都涉及到服务器的往返,即页面刷新。这并不意味着您不能在Django项目中进行实时Ajax交互,只是Django不会在这方面对您有所帮助,您也不会在Django文档中找到任何可以帮助您的东西。
在不刷新页面的情况下生成这些结果需要更多的工作。在大多数情况下,我认为人们过分迷恋于实现这一目标。您将需要设置一个接收视图,编写javascript或jquery以发送到接收视图,将数据保存在接收视图中,并编写js以实时更新页面(假设后端保存进行得很好)。一切都有可能,我们都做过了,但一定要考虑一下是否值得。
如果这是一个绝对的需求,请深入研究,因为它将需要相当多的自定义代码和工具。
https://stackoverflow.com/questions/55177197
复制相似问题