TurboGears2 / SQLAlchemy: inserimento di una nuova riga in una tabella con una chiave primaria autoincrement
-
21-09-2019 - |
Domanda
Sono un noob e sto cercando di ottenere la mia testa intorno TG2 e SQLAlchemy. Il problema specifico che sto lottando con al momento è come inserire una nuova riga in una tabella quando il campo PK è configurato come autoincrement.
Ad esempio:
nel mio file myproject.model.myproject.py ho definito la seguente tabella:
class Dj(DeclarativeBase):
__tablename__ = 'djs'
#{ Columns
djID = Column(Integer, autoincrement=True, primary_key=True)
djname = Column(String)
djwebpage = Column(String)
#}
Nel mio file websetup.py ho popolarlo con alcuni dati iniziali. Poiché questa è la prima riga di dati, ho barato e appena definito la djID essere "1"
dj = model.Dj("1", "DJ Anonymous", "http://www.djanonymous.com")
Se avessi voluto il websetup.py di creare una seconda riga della tabella dj (tramite l'oggetto Dj) come avrei fatto?
Ho già provato un certo numero di cose diverse e non hanno avuto fortuna. Per esempio, se ho usato lo stesso formato, ma ho incluso solo 2 stringhe (per le colonne djname e djwebpage) ottengo un errore lamentando che non ho dato abbastanza argomenti.
Naturalmente, alla fine, ho bisogno di capire come creare un controller per permettere a me di inserire nuove voci nella tabella ... ma mi prendo il mio apprendimento di una passo alla volta ed essere grati solo di controllare la validità con successo -populate la tabella con più righe tramite il file websetup.py. Speriamo che mi darà gli indizi per permettermi di portarla al passo successivo.
Grazie in anticipo!
Soluzione
Bene il problema è semplicemente (Sono impressionato è andato senza risposta per così tanto tempo:)
.- In primo luogo perché il nome la colonna id "djID"? perché non solo id?
- In secondo luogo è non inserire in esso, che è per questo che è autoincrement.
- In terzo luogo il prima di base SA tutorial spiega questo