Возникли проблемы с отображением сообщений пользователей в Python Flask - PullRequest
0 голосов
/ 11 октября 2018

Итак, у меня проблема с моим проектом.Я пытаюсь отобразить следующие сообщения пользователя, но ничего не отображается.Я не знаю, в чем проблема, так как никаких ошибок не отображается. Это то, что я использую для запроса последующих сообщений (стр. 158)

Здесь должны отображаться сообщения.Это дает пользователю возможность отображать все сообщения или только что подписанные сообщения.

. Ничего не отображается.

Вот класс пользователя, в котором я определяю следующие сообщения:

Функция follow_post () должна отображать пользователей, которые следят за сообщениями

 @property
def followed_posts(self):
    return Post.query.join(Follow, Follow.followed_id == Post.user_id).filter(Follow.follower_id == self.id)

В моих основных маршрутах у меня есть;

@main.route('/all')
@login_required
def show_all():
    resp = make_response(redirect(url_for('main.compscipost')))
    resp.set_cookie('showed_followed', '' , max_age = 
    30*24*60*60)
return resp

@main.route('/followed')
@login_required
def show_followed():
   resp = make_response(redirect(url_for('main.HomePage')))
   resp.set_cookie('showed_followed', '1', max_age = 30*24*60*60)
return resp

, а также вthe blueprint = 'main' rout.py, функция для моей домашней страницы:

@main.route('/')
@main.route('/home')
def HomePage():
  page = request.args.get('page', 1, type = int)
  showed_followed = False
  if current_user.is_authenticated:
    showed_followed = bool(request.cookies.get('showed_followed', ''))
  if showed_followed:
     query= current_user.followed_posts
  else: 
    query = Post.query
  pagination = 
query.order_by(Post.date_posted.desc()).paginate(page = page, 
per_page = 5, 
        error_out = False)
posts = pagination.items
return render_template("HomePage.html", posts =posts, 
showed_followed = showed_followed , 
    pagination = pagination)

Наконец, для моего homepage.html, где, как мне кажется, главная проблема:

это homepage.html.

Это вставка из HTML

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Из того, что я вижу, в вашей конечной точке HomePage вы устанавливаете posts=pagination.items, а в своем HTML вы также просматриваете post.items.

Попробуйте это в своем HTML:

{% for post in posts %}
# ...
{% endfor %}
0 голосов
/ 11 октября 2018

Это потому, что вы просто создаете запрос в свойстве def followed_posts().

Вы должны завершить его .one() или .all() или first().

.Примечание: если вы используете SQLAlchemy, взгляните на гибридные свойства.Поскольку обычные свойства Python иногда вызывают проблемы, когда вы запрашиваете атрибуты экземпляра и класса одновременно.

...