Как передать разные идентификаторы для django summernote form - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть форма комментария для модели в django, и я отображаю несколько экземпляров формы в моем шаблоне, используя SummernoteWidget. Проблема в том, что форма отправляет только первый экземпляр формы и игнорирует остальные, потому что они имеют один и тот же идентификатор.

Как передать несколько идентификаторов для каждого экземпляра формы

Форма моего комментария

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 голосов
/ 09 сентября 2018

Я вижу ошибки в вашей модели формы. Форма модели не должна иметь никаких полей. Вы должны описать их в теге 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 в связанном методе.

...