如何使用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}