1

我正在阅读 Miguel Grinberg 编写的 Flask Mega 教程,但我遇到了一个奇怪的问题,我无法弄清楚。

该博客已设置好,因此您可以让其他用户成为关注者。/index 页面应该列出来自您的关注者的博客文章。你应该是你自己的追随者,所以你的博客文章应该出现在 /index 和 /user 中。我的帖子只显示在 /user 页面中。

我已经拥有的存储库在这里:

https://github.com/asdoylejr/微博

据我所知,到目前为止我所做的一切都是教程中的一行一行。我不确定为什么我的测试帖子列在 /user 视图中而不是 /index 中。

在 /index 视图中,posts 定义为:

posts = g.user.followed_posts().paginate(page, POSTS_PER_PAGE, False)

但是在 /user 视图中,它被定义为:

posts = user.posts.paginate(page, POSTS_PER_PAGE, False)

如果我更改 /index 帖子变量以匹配 /user,它会返回错误。

谁能帮我发现我错过了什么?

谢谢

4

1 回答 1

2

要检查用户是否在关注他/她自己,您可以在 Python shell 中尝试以下操作:

>>> from app import models
>>> u = models.User.query.filter_by(email = '<user-email-here>').first()
>>> u.is_following(u)
True

如果你得到False,那么由于某种原因没有建立关系。您可以使用以下方法修复它:

>>> from app import db
>>> u.follow(u)
>>> db.session.add(u)
>>> db.session.commit()

如果这解决了它,那么问题出在数据库中。也许您正在测试的用户是在您将关注者功能添加到项目副本之前创建的。

于 2013-10-31T04:12:05.817 回答