Как лучше всего отобразить форму комментирования в 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 %}