【发布时间】:2023-03-09 06:32:01
【问题描述】:
在直接讨论我的问题之前,我想声明我是 Django 的新手。我的数据库模型是在 Sqlalchemy Flask 中创建的。我也想在我的 Django 应用程序中编写相同的数据库模型。为了简单起见,这是在 Flask 中使用 Sqlalchemy 创建模型的方式。 flask_model.py
class LeadsStatus(db.Model):
__tablename__ = 'leads_status'
if leadgenapp.config['TESTING']:
f_key = 'companies.id'
else:
__table_args__ = {'schema': tbl_schema}
f_key = f'' + tbl_schema + '.companies.id'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
company_id = db.Column(db.Integer, db.ForeignKey(f_key), nullable=False, index=True)
status = db.Column(db.String(120))
users_id = db.Column(db.Integer)
assign_date = db.Column(db.DateTime)
companies = db.relationship('Companies', backref='leadstatus')
此模型包含一个外键。我的问题是,当我创建相同的模型时,它会抛出一个错误,指出f_key is not defined。
这就是我编写模型的方式。
django_model.py
class LeadsStatus(models.Model):
__tablename__ = 'leads_status'
# if leadgenapp.config['TESTING']:
# f_key = 'companies.id'
# else:
# __table_args__ = {'schema': tbl_schema}
# f_key = f'' + tbl_schema + '.companies.id'
id = models.IntegerField(primary_key=True, auto_created=True)
company_id = models.ForeignKey(f_key, nullable=False, index=True, on_delete=models.CASCADE)
status = models.CharField(max_length=120)
users_id = models.IntegerField()
assign_date = models.DateTimeField()
companies = models.relationship('Companies', backref='leadstatus')
我了解错误的原因,但我不明白如何克服它?如果这个问题听起来微不足道,我深表歉意,但我只是 django 的新手,我不知道 Django 的 ORM 中的情况如何
【问题讨论】: