Я новичок в Python & Flask и у меня есть вопрос о циклическом выводе с использованием группы.У меня есть таблица с именем Закладки, которая имеет поле с именем categoryid.На моем шаблоне Jinja я хочу сделать что-то вроде:
bookmark.Category.title
bookmark.title
bookmark.title
У меня есть часть данных, работающая нормально с отношениями, но я нахожусь в тупике на стороне шаблона.
МойМодель закладки выглядит следующим образом:
class Bookmark(db.Model):
__tablename__ = 'bookmarks'
id = db.Column(db.Integer, primary_key=True)
userid = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
categoryid = db.Column(db.Integer, db.ForeignKey('categories.id'), nullable=False)
url = db.Column(db.TEXT, nullable=False)
title = db.Column(db.String(128), nullable=False)
allow_all = db.Column(db.Boolean, nullable=False, default=False)
date_created = db.Column(db.DateTime, default=db.func.current_timestamp())
date_updated = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
date_deleted = db.Column(db.DateTime)
А моя модель категории выглядит следующим образом:
class Category(db.Model):
__tablename__ = 'categories'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(128), nullable=False)
date_created = db.Column(db.DateTime, default=db.func.current_timestamp())
date_updated = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp())
date_deleted = db.Column(db.DateTime)
Моя функция контроллера выглядит следующим образом:
@mod_user.route('/home', methods=['GET', 'POST'])
@login_required
def home():
bookmarks = db.session.query(Bookmark, Category, User)\
.join(Category)\
.join(User, Bookmark.userid == User.id)\
.filter((Bookmark.userid == current_user.id) | (Bookmark.allow_all == True))\
.order_by(Category.title.asc(), Bookmark.title.asc())\
.group_by(Category.title)\
.all()
return render_template(('user/home.html'), bookmarks=bookmarks)
То, что у меня есть нашаблон сейчас:
{% for bookmark in bookmarks %}
<tr>
<td><a href="{{ bookmark.Bookmark.url }}" target="_new">{{ bookmark.Bookmark.title }}</a></td>
<td>{{ bookmark.Bookmark.date_created }}</td>
<td>{{ bookmark.Category.title }}</td>
<td>{{ bookmark.User.first_name }} {{ bookmark.User.last_name }}</td>
</tr>
{% endfor %}
Я бы хотел, чтобы bookmark.Category.title был своего рода перерывом или заголовком - но я потерян.Любые предложения будут высоко оценены.