TurboGears2 / SQLAlchemy: L'insertion d'une nouvelle ligne dans une table avec une clé primaire autoincrement

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

Question

Je suis un noob et essaie d'obtenir ma tête autour TG2 et SQLAlchemy. Le problème spécifique que je suis aux prises avec au moment est de savoir comment insérer une nouvelle ligne dans une table lorsque le champ PK est configuré comme autoincrement.

Par exemple:

dans mon fichier myproject.model.myproject.py je défini le tableau suivant:

class Dj(DeclarativeBase):
    __tablename__ = 'djs'

    #{ Columns

    djID = Column(Integer,  autoincrement=True, primary_key=True)
    djname = Column(String)
    djwebpage = Column(String)
    #}

Dans mon fichier websetup.py je le remplir avec des données initiales. Étant donné que c'est la première ligne de données, je triché et juste défini le Djid être « 1 »

dj = model.Dj("1", "DJ Anonymous", "http://www.djanonymous.com")

Si je voulais le websetup.py pour créer une deuxième ligne dans la table de djs (via l'objet Dj) comment pourrais-je faire?

J'ai essayé auparavant un certain nombre de choses différentes et ont pas eu de chance. Par exemple, si je le même format, mais ne Comprise 2 cordes (pour les colonnes de djname et djwebpage) Je reçois une erreur se plaindre que je ne lui donne pas assez d'arguments.

Bien sûr, en fin de compte, je dois savoir comment créer un contrôleur pour me permettre d'insérer de nouvelles entrées dans la table ... mais je vais prendre mon apprentissage d'une étape à la fois et être reconnaissant juste avant avec succès -populate la table avec plusieurs lignes via le fichier websetup.py. Espérons que cela me donnera les indices pour me permettre de prendre à l'étape suivante.

Merci d'avance!

Était-ce utile?

La solution

Eh bien votre problème est tout simplement (je suis impressionné qu'il est restée sans réponse depuis si longtemps:)

.
  • Tout d'abord pourquoi le nom de votre colonne id "Djid"? pourquoi ne pas simplement id?
  • Deuxième vous ne pas insérer dans ce qui est pourquoi il est autoincrement.
  • Troisième première base tutoriel SA explique cette
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top