Django model form set initial

У меня есть список комментариев, хранящийся в базе данных, схема:

models.py

class Comment(models.Model):
    content = models.CharField(max_length=255)

набор запросов

In [1]: from comments.models import Comment

In [2]: Comment.objects.all()
Out[2]: <QuerySet [<Comment: Comment object (1)>, <Comment: Comment object (2)>]>

In [3]: Comment.objects.all()[0]
Out[3]: <Comment: Comment object (1)>

In [4]: Comment.objects.all()[0].content
Out[4]: 'first comment'

Я хочу использовать CommentListUpdateView, чтобы позволить пользователю обновлять множество комментариев на одной странице по отдельности (каждый комментарий имеет форму и кнопку обновления)

поэтому я в

views.py

# Create your views here.
def commentListUpdateView(request):
    forms = []
    for comment in Comment.objects.all():
        form = CommentUpdateForm(request.POST, instance=comment, initial={'content': comment.content})
        # form = CommentUpdateForm(request.POST, instance=comment)
        # form.fields['content'].initial = comment.content
        forms.append(form)
    return render(request, 'comments/comment_list_update.html', {'forms': forms})

forms.py

class CommentUpdateForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ['content']

template

{% for form in forms %}
    <form method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form }}
        <button type="submit">Update</button>
    </form>
{% endfor %}

Однако я всегда могу получить значение из backend, но значение всегда отсутствует во frontend. html, который я получил в результате:

<form method="POST" enctype="multipart/form-data">
    <input type="hidden" name="csrfmiddlewaretoken" value="zQtpR8P4K8A1a7i1ELI9kJg1YRo0Y7d02hpSWqY5VPX2j48x1j4UHubWmosaGk4Q">
    <label for="id_content">Content:</label>
    <ul class="errorlist">
        <li>This field is required.</li>
    </ul><input type="text" name="content" maxlength="255" required="" id="id_content">
    <button type="submit">Update</button>
</form>

Я прочитал много соответствующих постов, посвященных ModelForm initial ценности.

Передать начальное значение modelform в django

Но решения, которые они предлагают, не сработали. Я буду очень рад, если вы сможете предложить какую-то помощь.

Вернуться на верх