TurboGears2 / SQLAlchemy: Insertar una nueva fila en una tabla con una clave principal autoincrement

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

Pregunta

Soy un novato y estoy tratando de conseguir mi cabeza alrededor TG2 y SQLAlchemy. El problema específico que estoy luchando con en este momento es cómo insertar una nueva fila en una tabla cuando el campo PK se configura como incremento automático.

Por ejemplo:

en mi archivo myproject.model.myproject.py que define la siguiente tabla:

class Dj(DeclarativeBase):
    __tablename__ = 'djs'

    #{ Columns

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

En mi archivo websetup.py que lo pueblan con algunos datos iniciales. Dado que esta es la primera fila de datos, hice trampa y acaba de definir la djID a ser "1"

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

Si quería la websetup.py para crear una segunda fila de la tabla djs (a través del objeto Dj) cómo iba a hacer eso?

He intentado previamente una serie de cosas diferentes y no han tenido suerte. Por ejemplo, si he utilizado el mismo formato, pero sólo no incluido 2 cadenas (por las columnas djname y djwebpage) me sale un error que se queja de que no le di suficientes argumentos.

Por supuesto, en última instancia, tengo que encontrar la manera de crear un controlador que me permita insertar nuevas entradas en la tabla ... pero me quedo con mi aprendizaje de un paso a la vez y estar agradecidos acaba de comprobar la validez éxito -populate la mesa con varias filas a través del archivo websetup.py. Es de esperar que me dará las pistas que me permitiera llevarlo al siguiente paso.

Gracias de antemano!

¿Fue útil?

Solución

Bueno, el problema es simplemente (Estoy impresionado que quedó sin respuesta durante tanto tiempo:)

.
  • En primer lugar ¿por qué el nombre de su columna id "djID"? ¿por qué no identificación?
  • no insertar en ella, es por eso que es incrementado automáticamente.
  • En tercer lugar la primer básica SA tutorial explica este
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top