如何通过Django Summernote表单传递不同的ID

时间:2018-09-09 19:31:06

标签: django summernote

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

1 个答案:

答案 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文件中为多个表单(如果有)分配不同的名称。