如何使用ID字段作为表单集模板代码中的url参数(使用django额外视图)

如何使用ID字段作为表单集模板代码中的url参数(使用django额外视图),django,formset,Django,Formset,我试图采用“额外视图”作为处理表单集的高级方法,并希望在表单集模板的每一行上都有一个链接,以重定向到相关的基于对象的页面,为此,我需要该对象的id字段的初始值作为url参数 以下是观点: from extra_views import ModelFormSetView from .models import Course class CourseFormSetView(ModelFormSetView): model = Course fields = ['id', 'ceNa

我试图采用“额外视图”作为处理表单集的高级方法,并希望在表单集模板的每一行上都有一个链接,以重定向到相关的基于对象的页面,为此,我需要该对象的
id
字段的初始值作为url参数

以下是观点:

from extra_views import ModelFormSetView
from .models import Course

class CourseFormSetView(ModelFormSetView):
    model = Course
    fields = ['id', 'ceName', 'ceExtName', 'ceDuration']
    template_name = 'course_view.html'
    factory_kwargs = {'extra': 1, 'max_num': None, 'can_order': False, 'can_delete': True}
以下是模板的相关部分:

<form method="post">
    {% csrf_token %} 
    {% for form in formset %}
        <p>{{ form.ceName }} {{ form.ceExtName }} {{ form.DELETE }} <a href="{% url 'booksys:coursesetup_view' 1 %}" class="btn btn-info" role="button">Edit</a></p>
    {% endfor %}
    {{ formset.management_form }}
  <input type="submit" value="Submit" />
</form>

{%csrf_令牌%}
{formset%中表单的%s}
{{form.ceName}{{form.ceExtName}{{form.DELETE}}

{%endfor%} {{formset.management_form}
对于url参数,我尝试了
{{form.fields.id.value}}
但它根本不会呈现到模板中,而
{{form.id}}
则呈现为隐藏字段,但无法使用url模板指令,模板呈现随后失败


非常感谢您的帮助。

我找到了这个问题的答案,我认为这非常有用,可以与大家分享:

由于
form.id
是一个隐藏字段,因此我的模板url需要包含
form.id.value
,以便正确呈现并绑定到模板的url部分

使用我的
工厂中的
'extra':1
,我需要它读取
form.id.value | default_if_none:0
,然后在链接视图中处理kwargs['pk']的特殊情况为零,否则对于新的表单集行,此字段将读取
none

现在,我的模板的相关部分如下所示:

<form method="post">
    {% csrf_token %} 
    {% for form in formset %}
        <p>{{ form.ceName }} {{ form.ceExtName }} {{ form.DELETE }} <a href="{% url 'booksys:coursesetup_view' form.id.value|default_if_none:0 %}" class="btn btn-info" role="button">Edit</a></p>
    {% endfor %}
    {{ formset.management_form }}
  <input type="submit" value="Submit" />
</form>

{%csrf_令牌%}
{formset%中表单的%s}
{{form.ceName}{{form.ceExtName}{{form.DELETE}}

{%endfor%} {{formset.management_form}