Python 将sqlalchemy模型属性设置为字符串

Python 将sqlalchemy模型属性设置为字符串,python,flask-sqlalchemy,Python,Flask Sqlalchemy,我有以下代码: from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(app) class Product(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(128), unique=True) def id_to_string(self): return str(id) 但当

我有以下代码:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy(app)

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(128), unique=True)

    def id_to_string(self):
        return str(id)
但当我调用Product.id_to_string()函数时,它会给出:

<built-in function id>


我做错了什么?如何以字符串形式获取id值?

您需要在函数中放置一个
self
修饰符:

def id_to_string(self):
  return str(self.id)

否则,您将调用内置的
id
(请参阅)。这就是为什么大多数linter实际上会标记您使用“id”作为变量名,即使它有意义。

id
是模型实例上的一个属性。所以你需要将它称为
self.id
。当然,我不知道我怎么会错过它:/谢谢!哦,我的天哪,我现在觉得自己好蠢:(非常感谢!@NiniMichaels真的吗?如果我不问这种问题,而是浪费时间搔头,我会觉得更傻。这就是为什么拥有第二双眼睛是如此的好。感谢你真的问了。很多人会感到羞愧(从而放慢或停止学习)