TurboGears2 / SQLAlchemy: inserimento di una nuova riga in una tabella con una chiave primaria autoincrement

StackOverflow https://stackoverflow.com/questions/1366295

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!

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top