如何为模板中显示的django对象生成唯一的div id

时间:2018-06-15 11:24:34

标签: javascript python django html5

我正在研究Django项目。我有一个显示所有可用帖子的模板。用户可以喜欢发帖。一切都很好。但我遇到了一个问题。由于我在用户点击它时使用ajax来更改like按钮的状态,我发现当用户点击其中一个显示帖子的like按钮时,显示的posts对象的所有类似按钮都会受到影响。我希望更改只发生在用户点击的类似按钮上。并非所有显示的帖子对象的按钮

我的HTML模板示例看起来像这样。

{% for post in allpost %} <!--for loop to get all post objects in data base-->
{{post.tittle}}
{{post.content}}
{{post.type}}

<!-- like button  for users to be able to like post they fine interesting-->
<a  href="" data-href="{% url 'post:api_like' slug=post.slug %}">
<button id="like">like</button></a>
{% endfor %}

所以你可以看到我喜欢的按钮id不是动态的,这是我遇到这个问题的原因之一。如何为for循环帖子中的每个like按钮生成动态按钮ID?

请帮帮我

1 个答案:

答案 0 :(得分:1)

HTML中的标识符必须唯一,而是指定一个CSS类,然后使用它来附加事件处理程序。

如果您想要保留可以使用data-* attributes方法获取的任意数据,我建议您使用自定义.data(),而不是使用 id 属性。

{% for post in allpost %} <!--for loop to get all post objects in data base-->

    <!-- like button  for users to be able to like post they fine interesting-->
    <button type="button" class="like" data-id="{{post.id}}">like</button>
{% endfor %}

这是一个jQuery 脚本,用于附加事件处理程序并获取click事件的数据

$(function (){ 
    $('.like').on('click', function(){ 
        //Fetch Id 
        var id = $(this).data('id');                
    }); 
});