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)
    }