我想在每个用户的页面上创建一个基本评论和发布系统。在Views.py中,我调用用户页面上所有帖子的查询集,并将其称为“postset”。然后在模板中,我循环遍历整个查询集并提取postset,postdate,以及postset queryset中每个帖子的帖子的pk / ID。然后在每个帖子下,我还会显示用于输入评论的表单。我的问题是,我想以某种方式将{{postset.pk}}变量传递给用户填充到comments.py文件的注释表中的相应帖子,以便我可以将输入的注释存储在正确的帖子下它属于。我怎样才能做到这一点?具体来说,我怎样才能让django理解每个评论形式所在的帖子是输入的评论应该通过ForeignKey附加的帖子?
提前感谢您的帮助。我很难过。真的很感激。
<ul>
{% for postset in postset %}
<br>{{ postset.postcontent }} {{ postset.postdate }} {{ postset.pk }}
</br>
<form action="/myapp/{{url_paramforURL}}/" method="post">
{% csrf_token %}
{{ commentform.commentcontent }}
<input type="submit" value="Comment" />
<ul>
{% for comment in postset.postcomment_set.all %}
<br> {{ comment.comment }} {{comment.postcommentdate }}
{% endfor %}</ul>
{% endfor %}
</ul>
答案 0 :(得分:2)
与任何数据一样,您可以在URL中或在表单中传递它。
例如,您可以设计评论表单发布到的URL,以便它包含postset ID,例如:/myapp/post/<id>/<postset_id>/add_comment/
。然后,将这些值传递到模板中的{% url %}
标记,并在视图中使用它们就很简单了。
或者,尽管我不喜欢这个解决方案,但您可以简单地添加一个包含postset ID的隐藏输入:
<input type="hidden" name="postset_id" value="{{ postset.id }}">
并从视图中的request.POST
获取。