Как лучше всего отобразить форму комментирования в ListView для каждой записи блога?

В настоящее время у меня есть полнофункциональная форма комментирования в представлении записи блога, которую я хочу отобразить в ListView. Что-то вроде того, что у linkedin есть под каждым элементом списка, если вы заметили, я думаю, что у facebook есть то же самое.

Есть ли короткий путь для достижения этого?

Я предполагал, что можно объединить ListView с FormMixin (https://docs.djangoproject.com/fr/4.1/ref/class-based-views/mixins-editing/#django.views.generic.edit.ModelFormMixin)

В каждом элементе списка вы создаете свою html форму и проверяете, существует ли форма и соответствует ли экземпляр формы текущему представлению списка для отображения ошибок и данных в случае отправки недействительной формы.

class MyPostList(FormMixin, ListView);
    model = Post
    form = CommentAddForm
    template...


class CommentAddForm(ModelForm):

    class Meta:
        model = Comment
        fields = ('post_id', 'txt'...)

{% for post in post_list %}
    {{post}}

    <form>
        {% if form.data.post_id == post.pk %}{{form.errors}}{% endif %}
        <input type="hidden" name="post_id" value="{{post.pk}}" />
    </form>

{% endfor %}
Вернуться на верх