我在Django中有一个模型的注释表单,并使用SummernoteWidget在模板上呈现了表单的多个实例。问题在于表单仅提交表单的第一个实例,而忽略其余的表单,因为它们共享相同的ID。
如何为每个表单实例传递多个ID
我的评论表
class CommentForm(ModelForm):
body = forms.CharField(widget=SummernoteWidget())
class Meta:
model = Comment
fields = ['body']
我的模板
<form method="post">
{% csrf_token %}
{% for field in form %}
{{ field }}
{% endfor %}
<button type="submit">Comment</button>
</form>
答案 0 :(得分:1)
我看到您的表格形式有误。模型表格不应包含任何字段。您应该在META标签中对其进行描述。
class Author(models.Model):
name = models.CharField(max_length=100)
title = models.CharField(max_length=3, choices=TITLE_CHOICES)
birth_date = models.DateField(blank=True, null=True)
def __str__(self):
return self.name
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = ['name', 'title', 'birth_date'].
如上所示。另外,对于summernote小部件,还应该在 META 部分中分配。
class FormFromSomeModel(forms.ModelForm):
class Meta:
model = SomeModel
widgets = {
'foo': SummernoteWidget(),
'bar': SummernoteInplaceWidget(),
}
请在调用模板中的表单时也使用安全:
{{ foobar|safe }}
解决所有这些问题之后,您可以在相关方法内的view.py文件中为多个表单(如果有)分配不同的名称。