Django模板:如何传递显示对象的PK / ID返回模板中的Views.py文件?

时间:2014-10-08 11:15:23

标签: python html django django-views

我想在每个用户的页面上创建一个基本评论和发布系统。在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>

1 个答案:

答案 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获取。