Django:是否将item.id列为字段属性?
在我的模板中,我有:Django:是否将item.id列为字段属性?,django,modelform,templatetag,Django,Modelform,Templatetag,在我的模板中,我有: {% for link in solution_list %} <form id="marked_solved_form{{link.id}}" action="" method="post"> {{mark_solved_form.is_solution}}
{% for link in solution_list %}
<form id="marked_solved_form{{link.id}}" action="" method="post">
{{mark_solved_form.is_solution}}
{% csrf_token %}
<label for="id_is_solution{{link.id}}">test form</label>
<input type="hidden" name="next" value="{{ request.path }}"/>
</form>
{% endfor %}
到目前为止还不错。除了加载表单时,我为每个列表表单中的每个复选框获取以下内容:
<input name="is_solution" type="checkbox" class="testing{{link.id}}" onchange="this.form.submit();" id="testing{{link.id}}">
但是,由于无法在另一个模板标记中处理{{link.id},因此该操作被阻塞:(任何建议都将不胜感激。提前感谢!模板无法呈现放置在
\uuuuu init\uuuuu
方法中的那些变量。您应该能够通过self.instance
访问模型实例,并通过执行以下操作在\uuuu init\uuuuuu
方法中添加正确的id:
def __init__(self, *args, **kwargs):
super(PostMarkedSolved, self).__init__(*args, **kwargs)
self.fields['is_solution'].widget.attrs={
'onchange':'this.form.submit();',
'class':'testing{0}', 'id':'testing{1}'.format(self.instance.id, self.instance.id)
}
此外,绑定到模型对象的模型表单实例将包含self.instance属性,该属性允许模型表单方法访问该特定模型实例
模板无法呈现放置在
\uuuuu init\uuuuu
方法中的变量。您应该能够通过self.instance
访问模型实例,并通过执行以下操作在\uuuuuu init\uuuuu
方法中添加正确的id:
def __init__(self, *args, **kwargs):
super(PostMarkedSolved, self).__init__(*args, **kwargs)
self.fields['is_solution'].widget.attrs={
'onchange':'this.form.submit();',
'class':'testing{0}', 'id':'testing{1}'.format(self.instance.id, self.instance.id)
}
此外,绑定到模型对象的模型表单实例将包含self.instance属性,该属性允许模型表单方法访问该特定模型实例
这是错误的方法。你应该使用带前缀的单独表单,或者更好地使用表单集。这是错误的方法。你应该使用带前缀的单独表单,或者更好地使用表单集。不幸的是,由于我在同一页面上有多个输入实例,当我提交一个时,它会提交所有实例并更改所有内容l id。我想我会尝试其他方法,而表单解决方案不是正确的方法。我真的很感谢你的建议!不幸的是,由于我在同一页上有多个输入实例,当我提交一个时,它会提交所有实例并更改所有id。我想我会尝试其他方法,表单解决方案不会改变这是正确的方法。我真的很感激你的建议!
{{mark_solved_form.is_solution|attr:"id:id_is_solution{{link.id}}"}}
def __init__(self, *args, **kwargs):
super(PostMarkedSolved, self).__init__(*args, **kwargs)
self.fields['is_solution'].widget.attrs={
'onchange':'this.form.submit();',
'class':'testing{0}', 'id':'testing{1}'.format(self.instance.id, self.instance.id)
}