Python peewee.OperationalError:near";“作为:语法错误
所以我不太明白到底是什么问题。我正在使用python flask,目前正试图从我的帖子模型中调用某些帖子。但是,我总是收到“peewee.OperationalError:near“AS”:syntax error”错误消息,这是由我的用户模型中的以下类方法引起的:Python peewee.OperationalError:near";“作为:语法错误,python,flask,peewee,Python,Flask,Peewee,所以我不太明白到底是什么问题。我正在使用python flask,目前正试图从我的帖子模型中调用某些帖子。但是,我总是收到“peewee.OperationalError:near“AS”:syntax error”错误消息,这是由我的用户模型中的以下类方法引起的: @classmethod def get_stream(self): return Post.select().where(Post.user == self) 我在以下路径中调用此方法来定义流,
@classmethod
def get_stream(self):
return Post.select().where(Post.user == self)
我在以下路径中调用此方法来定义流,然后将其传递给模板:
@app.route('/stream')
@app.route('/stream/<username>')
def stream(username=None):
template = 'stream.html'
if username and username != current_user.username:
user = social.User.select().where(social.User.username**username).get()
stream = user.posts.limit(100)
else:
stream = current_user.get_stream().limit(100)
user = current_user
if username:
template = "user_stream.html"
# stream = social.Post.select().where(social.Post.user == current_user.id)
return render_template(template, stream=stream, user=user)
回溯(最近一次呼叫最后一次)
在我的
用户
模型中定义方法之前的@classmethod
阻止了它的工作。我仍然需要弄清楚原因,但现在它可以工作。在我的用户
模型中定义方法之前,@classmethod
阻止了它的工作。我仍然需要弄清楚原因,但现在它起作用了。用@classmethod
装饰方法会告诉Python将类而不是实例作为第一个参数来传递。通常,在这种情况下,您可以将第一个参数命名为cls
,以保持清楚
您的方法试图通过调用它的用户实例获取所有Post
s,但是调用该方法会传递user
类。删除@classmethod
装饰程序
def get_stream(self):
return Post.select().where(Post.user == self)
现在,
self
是一个用户实例,关系Post.user==self
是有意义的。用@classmethod
装饰一个方法,告诉Python将类而不是实例作为第一个参数传递。通常,在这种情况下,您可以将第一个参数命名为cls
,以保持清楚
您的方法试图通过调用它的用户实例获取所有Post
s,但是调用该方法会传递user
类。删除@classmethod
装饰程序
def get_stream(self):
return Post.select().where(Post.user == self)
现在,
self
是一个用户实例,关系Post.user==self
是有意义的。请显示完整的错误消息并回溯.Done。希望有帮助!这似乎不是全部信息;语法错误的地方在哪里?最上面的地方?没有比我已经发布的更多的了。上面写着:peewee.OperationalError peewee.OperationalError:near“AS”:语法错误请显示完整的错误消息并回溯到.Done。希望有帮助!这似乎不是全部信息;语法错误的地方在哪里?最上面的地方?没有比我已经发布的更多的了。它说:peewee.OperationalError peewee.OperationalError:near“AS”:语法错误
def get_stream(self):
return Post.select().where(Post.user == self)