小编Jam*_*mes的帖子

如何为 django 模板中的标签创建动态 ID

背景:我有一个动态表(因为我直到运行时才知道它的大小/元素),我试图在其中使用 javascript 函数填充文本区域。为此,我计划将文本区域的 id 以及我想将其填充到 javascript 函数中的值一起传递。

问题是我在为每个文本输入字段创建动态 id 值时遇到问题。这就是我目前尝试这样做的方式:

   {% with "input_"|add:applicant.id as idName %}
        <input id="{{ idName }}" type="text" value="">
        <input type="button" hidden="TRUE" onclick="">
        {{ idName }}
        <script>
            putTags({{ idName }}, {{ tags }});
        </script>
   {% endwith %}
Run Code Online (Sandbox Code Playgroud)

函数 putTags() 将填充文本输入的内容。不幸的是,这不起作用,因为它将每个人的 id 分配给“input_”,而没有附加申请人.id 的值(我已经检查过,每次迭代的申请人.id 都有一个正确的 id)。难道我做错了什么?有没有更简单的方法来创建这些唯一 ID?

html javascript django django-templates

3
推荐指数
1
解决办法
4624
查看次数

嵌套的Django表单:“ ManagementForm数据丢失或已被篡改”

因此,我环顾四周,似乎没有人遇到相同的问题,不得不引起这个看似常见的错误。我在我的html中呈现一些表单,如下所示:

<form method="post" action="">
{{ tags_formset.management_form }}

<!-- code displaying this formset -->
...
<!-- -->

    <form method="post" action="">
        {{ add_all_form.management_form }}
        {{ add_all_form.addTagsToAll }}
        <input type="submit" value="Add To Displayed Applicants" />
    </form>

    <form method="post" action="">
        {{ remove_all_form.management_form }}
        {{ remove_all_form.removeTagsFromAll }}
        <input type="submit" value="Remove From Displayed Applicants" />
    </form>
    <input type="submit" value="Save Changes" />
</form>
Run Code Online (Sandbox Code Playgroud)

当我没有两个内部表单时,将正确显示表单集,并且“提交”按钮可以提交表单。当我添加第二种两种形式时,出现了几个问题:

-提交按钮停止工作(尽管在选择表单集的一个字段时按Enter仍提交表单

-add_all_form的提交工作正常,并且功能正常(不是问题,但有趣的是下一点...)

-remove_all_form无法通过“ ManagementForm数据丢失或已被篡改”验证错误来正常工作。

这是创建表单的views.py代码:

    TagsFormSet = formset_factory(TagsForm, formset=TagFormSet, extra=applicantQuery.count())
    if request.method == 'POST':
        tags_formset = TagsFormSet(request.POST, request.FILES, prefix='tags', applicants=applicantQuery)
        add_all_form = TagAddAllForm(request.POST, …
Run Code Online (Sandbox Code Playgroud)

html python forms django nested-forms

3
推荐指数
1
解决办法
5379
查看次数