Ich werde F.A.B für schnelle benutzerdefinierte IoT APP Web als Backend verwenden.Mein Flask-AppBuilder-Projekt zeigt nur die ID für die zugehörige Tabelle anstelle des Namens an. Warum?
Durch Ausführen des Beispielprojekts von F.A.B Tutorial und Dokumente, die http://127.0.0.1:5000/contactmodelview/list/ ContactView Liste Seite, die Kontaktgruppe wird als Name in schwarz anstelle von ID angezeigt.
ich das Design geklont, gibt es eine 1: N-Verhältnis (ein Konto hat viele Geräte, genauso wie viele Kontakte Kontaktgruppe hat), ist hier der Code:
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.name
views.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]
jedoch die Liste DeviceView zeigt die zugehörige ID in Blau an und es wird kein Kontoname angezeigt. In der DeviceDetail-Ansicht wird jedoch der Kontoname angezeigt.
Was ist der Unterschied?