Javascript Django客户端过滤

Javascript Django客户端过滤,javascript,ajax,django,angularjs,django-templates,Javascript,Ajax,Django,Angularjs,Django Templates,我是Django的新手,我在一个网站上工作,我希望用户能够根据对象的时间戳过滤出对象。我可以很容易地在views.py中进行过滤并重新加载模板,但是如何在客户端进行过滤呢 加载所有内容是否是一个好主意: {% for obj in all_objects %} <p>{{obj.time}}</p> {% endfor %} {%用于所有对象中的obj%} {{obj.time} {%endfor%} 然后使用javascript隐藏和显示相关对象?我预计不会

我是Django的新手,我在一个网站上工作,我希望用户能够根据对象的时间戳过滤出对象。我可以很容易地在views.py中进行过滤并重新加载模板,但是如何在客户端进行过滤呢

加载所有内容是否是一个好主意:

{% for obj in all_objects %}
    <p>{{obj.time}}</p>
{% endfor %}
{%用于所有对象中的obj%}
{{obj.time}

{%endfor%}
然后使用javascript隐藏和显示相关对象?我预计不会超过1000件物品

我看了一下: 作者说他将使用AngularJS而不是定制的AJAX解决方案


Angular是我的最佳选择还是有其他更容易与Django集成的框架

您不需要像Angular这样的完整框架来过滤结果,不过我当然建议您使用一种流行的MVC框架。 但是,如果您这样做,您将显著改变django应用程序的体系结构,因为Angular等应用程序实际上是为单页应用程序构建的,如果您的django项目是公开API而不是呈现HTML,则最适合您

话虽如此,为了解决您的问题,我将继续使用相同的django模板,并将列表的内容加载到隐藏的HTML元素中。 然后在页面的Javascript代码中,您可以根据用户选择从列表中提取相关项。不过,这些代码将完全是Javascript

作为提示,我将使用django模板插入过滤参数作为隐藏HTML标记的数据属性。例如:

{% for obj in all_objects %}
    <p data-time='{{obj.time}}' data-somefilter='{{obj.somefiter}}'>{{obj.time}}</p>
{% endfor %}
{%用于所有对象中的obj%}

{{obj.time}

{%endfor%}
通过这种方式,您可以轻松地使用Jquery选择器根据需求过滤数据,然后将结果复制到可见HTML部分,在该部分中显示过滤列表