为django评论表单分配唯一ID

为django评论表单分配唯一ID,django,jquery,django-templates,Django,Jquery,Django Templates,我正在构建一个类似于facebook的墙功能、评论等 我正在利用django的comments框架和jquery发布并获得成功,我正在寻找一种提取隐藏的id\u object\u pk值并将其用作表单id的方法 法线形式按以下方式呈现 <form action="/comments/post/" method="post" class="comment-form" id=""> <input type="hidden" name="content_type" value

我正在构建一个类似于facebook的墙功能、评论等

我正在利用django的comments框架和jquery发布并获得成功,我正在寻找一种提取隐藏的
id\u object\u pk
值并将其用作表单id的方法

法线形式按以下方式呈现

<form action="/comments/post/" method="post" class="comment-form" id="">
    <input type="hidden" name="content_type" value="wall.post" id="id_content_type" />
    <input type="hidden" name="object_pk" value="76" id="id_object_pk" />
    <input type="hidden" name="timestamp" value="1283848690" id="id_timestamp" />
    <input type="hidden" name="security_hash" value="ccf0e2f3cbbd57cb043df3f304a8dd50a74e972b" id="id_security_hash" />


我怎样才能获得这些细节呢?

我的jQuery-fu很弱,所以对这个答案要小心谨慎。也许有更好的方法可以做到这一点

首先,您需要找到带有注释id的输入

var element = $('#id_object_pk');
接下来,提取注释id本身。这将是输入元素的
属性

var comment_id = element.attr('value');
最后更新表单的id属性并将其设置为
comment\u id

var form = $('.comment-form');
form.attr('id', comment_id);

通过使用jQuery中的.each函数来解决这个问题

$('.comment-form').each(function(){
    var element = $(this).find('#id_object_pk').val();
    $(this).attr('id', element);
});

是的,有道理,我会试试看。虽然我知道你可以删除第二行。并使第一个var元素=$('#id_object_pk').val();这确实有效,但是基于我有多个表单的事实,所有表单ID最终都是相同的,即77左右。这是因为所有表单共享相同的样式类。如果最初为每个表单使用不同的非空ID,则可以根据需要使用该ID进行选择和替换。