我正在努力制作像Newsfeed这样的Facebook。
我有Post
,其中包含所有帖子。从视图发送后,我将帖子加载到{% for p in posts %}
的模板,每个帖子我添加2个按钮(分享,像)和输入(评论)。
我怎么知道哪些被点击了所以我可以将post.id发送回视图,包括名称和值,并触发一个函数来处理它们在数据库中?
我想知道点击输入后是什么,它包含了什么以及它属于哪个帖子。
答案 0 :(得分:0)
我接触到的方式如下:
我会有特定的观点来处理共享和类似的功能,我宁愿将它们作为两个单独的视图。对于他们你然后创建网址,绝对你也将提供帖子标识符作为这个网址的参数。
例如:
class LikePost(View):
def post(self, request, post_id, *args, **kwargs):
code
对于此课程,您可以使用^/post/(?P<post_id>\d+)/$
等网址。
现在,为了简化Post模型类,您可以编写一个模型方法,为post实例返回LikePost视图的URL。
这样的事情:
def like_post_url(self):
return reverse('appname:reversename-for-url', args=(self.id,))
所以现在当您在模板中循环帖子时,您可以简单地将此URL指定为用于按钮的锚标记中的href值。因此,每个按钮都有自己的分享网址,也可以用于输入。
我认为这应该清楚说明如何进行简单化。