class Parent(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(120))
def __repr_(self):
return '<Parent %r>' % (self.name)
admin.add_view(ModelView(Parent, db.session))
class Child(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(120))
parent = db.Column(db.Integer, db.ForeignKey(Parent))
admin.add_view(ModelView(Child, db.session))
Hello -pallone-admin non mostrando colonne ForeignKey
Il codice di cui sopra è un esempio di pagina di pallone-admin che sto cercando di creare. L'obiettivo è quello di avere nella pagina di creazione di Child una casella di testo per nome e un menu a discesa per selezionare un genitore.
Con l'impostazione precedente, c'è solo il campo nome. Manca la casella a discesa del genitore.
Qualche idea su come realizzarlo?
Impressionante! Ci proverò stasera. Ho bisogno di informazioni su primaryjoin/secondaryjoin? Ho ricevuto molti errori a riguardo. Spero che il tuo cambiamento funzioni incredibilmente! – screenshot345
Onestamente, non lo saprei. Non ho mai visto nulla su primaryjoin/secondaryjoin con Flask-Alchemy o Flask-Admin. – Robin
Motivo per cui funziona: Flask-Admin funziona con oggetti ORM, come modelli, relazioni, ecc. Per impostazione predefinita, Flask-Admin ignora le chiavi esterne nei modelli poiché contengono solo un numero e Flask-Admin vuole che l'oggetto ORM concreto funzioni con. Quindi, quando hai una chiave esterna sul modello, assicurati di non dimenticare il collegamento del livello ORM tra i modelli: una relazione. Flask-Admin utilizzerà questo collegamento per visualizzare i modelli correlati. E no, non hai bisogno di fare cose fantasiose o aggiungere backrefs per farlo funzionare. – Joes