2009-09-02 5 views
1

私は悩み相談役であり、TG2とSQLAlchemyについて頭を惹こうとしています。私が現時点で取り組んでいる具体的な問題は、PKフィールドがautoincrementとして設定されているときにテーブルに新しい行を挿入する方法です。例えばTurboGears2/SQLAlchemy:自動インクリメントプライマリキーを使用して新しい行をテーブルに挿入する

:私はいくつかの初期データを移入私websetup.pyファイルで

class Dj(DeclarativeBase): 
    __tablename__ = 'djs' 

    #{ Columns 

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

私myproject.model.myproject.pyファイル内には、私は、次の表に定義されました。これはどのようにデータの最初の行であるので、私はだまされて、私は(オブジェクトDjの経由)DJSテーブルの2行目を作成するwebsetup.pyを望んでいた場合は、単に「1」

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

ことがdjID定義しました私はそれをしますか?

私はこれまでにいくつかの異なることを試み、運がなかった。たとえば、同じ書式を使用したが、2つの文字列(djname列とdjwebpage列の場合)のみを含めると、十分な引数を与えなかったと不平を言ってエラーが表示されます。

もちろん、究極的には、テーブルに新しいエントリを挿入できるようにコントローラを作成する方法を理解する必要があります。しかし、私は一度にステップを踏み出し、うまくいくことに感謝しますwebsetup.pyファイルを使用して、テーブルに複数の行をあらかじめ入力します。うまくいけば、それは私に次のステップにそれを取ることを可能にする手がかりを与えるだろう。

ありがとうございます!

答えて

1

あなたの問題は単純です(私はそれがとても長い間答えられなかったことに感心しています:)。

  • まず、ID列に「djID」という名前を付けますか?なぜイドだけじゃないの?
  • あなたはにはを挿入しないでください。そのため、それは自動インクリメントです。
  • 第3のfirst basic SAチュートリアルでこれについて説明しています
関連する問題