如何为 django summernote 表单传递不同的 id

How to pass diffrent id's for django summernote form

我在 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>

我看到你的模型表格有错误。模型表单不应有任何字段。你应该在 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 文件中为多个表单(如果有的话)指定不同的名称。