【发布时间】:2020-11-13 20:35:28
【问题描述】:
我是 Flask 的新手,所以对于这个问题的简单性表示歉意。这是我的问题:
我有 2 个模型,位于 2 个不同的目录中(目录布局如下图):
**************#1**************
class User(db.Model, UserMixin):
# Create a table in the db
__tablename__ = 'User'
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(64), unique=True, index=True)
username = db.Column(db.String(64), unique=True, index=True)
firstname = db.Column(db.String(64))
lastname = db.Column(db.String(64))
password_hash = db.Column(db.String(128))
is_admin = db.Column(db.Boolean, default=False)
created = db.Column(db.DateTime, default=datetime.datetime.utcnow)
subscription = db.relationship('Subscriptions', backref='owner')
def __init__(self, email, username, password, firstname, lastname):
self.email = email
self.username = username
self.firstname = firstname
self.lastname = lastname
self.password_hash = generate_password_hash(password)
def check_password(self,password):
return check_password_hash(self.password_hash,password)
还有:
**************#2**************
class Subscriptions(db.Model):
# Create a table in the db
__tablename__ = 'subscriptions'
id = db.Column(db.String(32), primary_key = True)
name = db.Column(db.String(64))
description = db.Column(db.String(255))
lastcrawled = db.Column(db.Date)
lastcheckedby = db.Column(db.Integer)
isActive = db.Column(db.Boolean, default = False)
datecreated = db.Column(db.Date, default = datetime.date.today())
user_id = db.Column(db.Integer, db.ForeignKey('User.id'))
def __init__(self, name):
self.name = email
我试图弄清楚在显示描述数据时如何访问用户模型中的字段(模型链接在 User.id 字段上)
**************#3**************
<div class="container">
<table class="w3-row-padding table table-striped">
<thead class="thead-dark">
<tr>
<td>Subscription Name</td>
<td>description</td>
<td>lastcrawled</td>
<td>lastcheckedby</td>
<td>isActive</td>
<td>datecreated</td>
<td>Owner</td>
</tr>
</thead>
{% for subscription in subscriptions %}
<tr>
<td>{{subscription.name}}</td>
<td>{{subscription.description}}</td>
<td>{{subscription.lastcrawled}}</td>
<td>{{subscription.lastcheckedby}}</td>
<td>{{subscription.isActive}}</td>
</tr>
{% endfor %}
</table>
</div>
下面是我的站点的布局,其中显示了模型的位置。我收到以下错误:
sqlalchemy.exc.ArgumentError: Mapped instance expected for relationship comparison to object. Classes, queries and other SQL elements are not accepted in this context; for comparison with a subquery, use Subscriptions.owner.has(**criteria).
[在此处输入图片描述][1]
网站布局在这里。非常感谢!!! [1]:https://i.stack.imgur.com/LK0oG.png
【问题讨论】:
标签: flask sqlalchemy foreign-keys