我将使用F.A.B的快速自定义IoT应用程序网络作为后端。
通过运行F.A.B教程和文档的示例项目http://127.0.0.1:5000/contactmodelview/list/ ContactView list页面,联系人组以黑色显示,而不是id。

我克隆了这个设计,有一个1:N的关系(一个账号有很多设备,就像ContactGroup有很多联系人一样),代码如下:
models.py
class Account(Model):
id = Column(Integer, primary_key = True)
username = Column(String(128), unique = True)
password = Column(String(128))
email = Column(String(128))
oauth = Column(String(128))
cellphone = Column(String(32))
def __repr__(self):
return self.username
class Device(Model):
id = Column(Integer, primary_key = True)
snr = Column(String(256), unique = True)
name = Column(String(128))
addr = Column(String(256))
latitude = Column(Float)
longitude = Column(Float)
status = Column(Integer)
api_id = Column(String(512))
api_key = Column(String(256))
api_dev_id = Column(String(256), unique = True)
api_dev_key = Column(String(256))
owner_id = Column(Integer, ForeignKey('account.id'))
owner = relationship("Account")
def __repr__(self):
return self.nameviews.py
class DeviceView(ModelView):
datamodel = SQLAInterface(Device)
related_views = [ApplicationView, EventView]
label_columns = {'snr':'SNR', 'api_dev_id':'Device ID', 'owner_id':'Owner'}
list_columns = ['snr','name','addr','owner_id']
show_fieldsets = [
('Summary',
{'fields':['snr','name','owner_id']}
),
('Device Info',
{'fields':'addr','latitude','longitude','status','api_id','api_key','api_dev_id','api_dev_key'],'expanded':True}
),
]
class AccountView(ModelView):
datamodel = SQLAInterface(Account)
related_views = [DeviceView]但是,DeviceView列表以蓝色显示相关ID,并且显示无帐户名。但是,在DeviceDetail视图中,将显示帐户名。

有什么不同?
发布于 2017-11-15 19:56:12
我找到了原因,并将我的视图代码更改为:
class DeviceView(ModelView):
datamodel = SQLAInterface(Device)
related_views = [ApplicationView, EventView]
label_columns = {'snr':'SNR', 'api_dev_id':'Device ID', 'owner_id':'Owner'}
list_columns = ['name','snr','addr','owner']
show_fieldsets = [
('Summary',
{'fields':['snr','name','owner']}
),
('Device Info',
{'fields':['addr','latitude','longitude','status','api_id','api_key','api_dev_id','api_dev_key'],'expanded':True}
),
]主要区别是将字段“owner_id”替换为“owner”。
https://stackoverflow.com/questions/47306641
复制相似问题