apache2サーバーで小さなアプリケーションを実行しようとしていますが、私が使用した元のデータベースはSqliteで、今はPostgresqlに切り替えています。このプロジェクトではFlaskとSqlalchemyを使用していますが、内部エラー500が発生し、整数の入力構文が無効です(カテゴリの名前列の項目)。整数(文字列)の入力構文が無効です
私は問題の根本を次の行に絞り込みましたが、現在は問題を解決できません。 のaddItem(DBSampleData.SampleItem)
def addItem(item):
for i in item:
items = Item(name=i[0], price=i[1], description=i[2],
category_ID=i[3], user_ID=i[4])
session.add(items)
session.commit
SampleItemの一つである:
('Maelstrom','2800',
'A hammer forged for the gods themselves, '
'Maelstrom allows its user to harness the '
'power of lightning.',
'Attack Speed',"guberland")
とカテゴリDB設定部である。
class User(Base):
__tablename__ = 'user'
ID = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
class Categories(Base):
__tablename__ = 'categories'
ID = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
class Item(Base):
__tablename__ = 'item'
ID = Column(Integer, primary_key=True)
name = Column(String(250), nullable=False)
description = Column(String(250))
price = Column(String(8))
category_ID = Column(Integer, ForeignKey('categories.ID'))
category = relationship(Categories)
user_ID = Column(Integer, ForeignKey('user.ID'))
user = relationship(User)
のapache2からエラーログの一部であります:
[Tue Oct 31 16:17:18.814754 2017] [wsgi:error] [pid 1631:tid 140448423360256] [client 75.155.173.141:51827] psycopg2.DataError: invalid input syntax for integer: “Attack Damage”
ここで、 "Attack Damage"はCategories.nameです ありがとうございます!
トレースバックを投稿できますか? – yash
'ID'を自動増分に設定していないので、' Categories'に 'ID'を渡す必要があります。また、 'session.commit()'の括弧を忘れました – kstullich
@kstullich ID = Column(Integer、primary_key = True、autoincrement = True)に変更しようとしましたが、問題を解決できませんでした。 – guberland