通过Flask显示好友名称多对多sqlalchemy

琳达

我有可以结交朋友的应用程序,我可以算朋友,并在profile.html中显示它,但是当我尝试打印朋友的名字时,它不起作用(它使用flask-sqlalchemy)

model.py:

friends = db.Table('friends',
db.Column('user_id', db.Integer, db.ForeignKey('user.id')),
db.Column('friend_id', db.Integer, db.ForeignKey('user.id'))
)

class User(db.Model):
   id = db.Column(db.Integer, primary_key = True)
   name = db.Column(db.String(50), index=True, unique= True)
   email = db.Column(db.String(50),index=True, unique= True)


   is_friend = db.relationship('User', #defining the relationship, User is left side entity
        secondary = friends, 
        primaryjoin = (friends.c.user_id == id), 
        secondaryjoin = (friends.c.friend_id == id),
        backref = db.backref('friends', lazy = 'dynamic'),
        lazy = 'dynamic'
    ) 

view.py:

@app.route('/profile/<int:id>')
    def profile(id):
      user= User.query.get(id)
      return render_template('profile.html', id=id, user= user)

profile.html:

{% extends "base.html" %}
    {% block content %}
           <strong>name:</strong> {{user.name}} <br>
           <strong>email:</strong> {{user.email }} <br>
           <strong>age:</strong> {{user.age}} <br>
           <br>
           # it shows the number of friends 
           <p>{{ user.is_friend.count() }} friends <p>
           # Am I doing it right?if so why it doesn't show the name of friends?
           <p>{{ user.is_friend.name }} is friend</p>
        {% endblock %}
脏衣服

您选择的名称is_friend可能引起您的一些困惑。像这样的东西friends会更清晰一些。您也不需要反向引用,因为每个User已经具有关系。

class User(db.Model):
   id = db.Column(db.Integer, primary_key = True)
   name = db.Column(db.String(50), index=True, unique= True)
   email = db.Column(db.String(50),index=True, unique= True)  

   friends = db.relationship('User', #defining the relationship, User is left side entity
        secondary = friends, 
        primaryjoin = (friends.c.user_id == id), 
        secondaryjoin = (friends.c.friend_id == id),
        lazy = 'dynamic'
    ) 

该关系为您提供了一个查询集,您可以对其进行迭代以获取所有相关记录。

{% for friend in user.friends %}
  <p>{{ friend.name }} is friend.</p>
{% endfor %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在IOS上显示好友Facebook

来自分类Dev

Pidgin不显示好友列表吗?

来自分类Dev

Flask-SQLAlchemy多对多

来自分类Dev

Flask-SQLAlchemy查询多对多

来自分类Dev

使用Flask-SQLAlchemy选择多对多

来自分类Dev

Flask SQLAlchemy多对多删除元素

来自分类Dev

Flask-SQLAlchemy多对多插入

来自分类Dev

Flask SQLalchemy-多对多-显示带有所有标签的照片(或包含所有帖子的博客等)

来自分类Dev

SQL列名称多次使用

来自分类Dev

SqlAlchemy(Postgres + Flask):如何求和多列?

来自分类Dev

SQLAlchemy + Flask多对一关系

来自分类Dev

SqlAlchemy(Postgres + Flask):如何求和多列?

来自分类Dev

Jsonify Flask-SQLAlchemy Flask中的多对一关系

来自分类Dev

设置多对多sqlalchemy flask app sqlite db的插入顺序

来自分类Dev

使用Flask-SQLAlchemy进行多对多查询

来自分类Dev

如何通过sqlalchemy查询从Flask流CSV?

来自分类Dev

geodjango中的“无法导入名称多边形”

来自分类Dev

使用列表中的名称多次复制文件

来自分类Dev

CREATE VIEW指定的列名称多于列

来自分类Dev

通过名称重命名多列

来自分类Dev

XMPP好友列表显示

来自分类Dev

Flask-Admin多对多字段显示

来自分类Dev

Flask-Sqlalchemy 3种多对多关系

来自分类Dev

Flask-Sqlalchemy,多对多关系中的辅助表的主键

来自分类Dev

我应该使用flask sqlalchemy多对多关系吗?

来自分类Dev

Flask-SQLAlchemy筛选与父模型的多对多关系

来自分类Dev

Flask-SQLAlchemy更新一对多记录

来自分类Dev

如何使用flask-sqlalchemy多次插入多对多关系?

来自分类Dev

Jsonify flask-sqlalchemy烧瓶中的多对一关系