2017-03-14 4 views
0

私はFlask Web Developmentのチュートリアルに従っています。 私は、データベースを構築しようとしているが、これは私がデータベースの名前が表示されない

>>> Role.query.all() 
[<Role u'Administrator'>, <Role u'User'>] 
>>> User.query.all() 
[<User u'john'>, <User u'susan'>, <User u'david'>] 

を取得する必要がありますものですが、私がしようとしたとき、私は名前を持っていないが、これは:

>>> Role.query.all() 
[<hello.Role object at 0x000001F135C1EBE0>, <hello.Role object at 0x000001F135C345F8>] 
>>> User.query.all() 
[<hello.User object at 0x000001F135C34C50>, <hello.User object at 0x000001F135C34CF8>, <hello.User object at 0x000001F135C34DA0>] 

私が試してみました私がチュートリアルとは違ったことをしたかどうかを確認するために、すべての手順をもっと時間を費やすことができますが、結果は同じです。何が原因なのか分かり、どうすれば克服できますか? この初心者を助けてくれてありがとうございます。

+1

'Role'クラスには[' __repr__'](https://docs.python.org/3/reference/datamodel.html#object.__repr__)メソッドがありません。 –

答えて

0

ロールまたはユーザーとして定義したクラスでは、__repr__関数を書き換える必要があります。

class Role(db.Model): 
    __tablename__ = "roles" 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(128)) 

    # the name is the output result you want to get. 
    # so, in your class, you define it and in the under function, you also define it. 
    def __repr__(self): 
     return '<Role `{}`>'.format(self.name) 
+0

チュートリアルでは、そのコードは ''%self.nameを返しました。あなたのバージョンも試しましたが、それでも動作しません。とにかくありがとう – Zemian

関連する問題