2

基本的に、私のデータはデータベースから引き出されているようですが、文字列自体ではなくアドレスを受け取ります。データベースから取得しようとしているのは、プロファイル ページ (文字列プロパティ) の 3 人の友人のリストです。

これは私のdbクラスです:

class Friends(db.Model):
    name = db.StringProperty(required = True)
    friend = db.StringProperty()
    added_date = db.DateTimeProperty(auto_now_add = True)

私のプロファイル ハンドラ:

class Profile(MainHandler):
    def get(self, profile_id):
        if self.user and profile_id:
            current_user = self.user.name
            name1 = ''
            friend_name = ''
            team_imagee = ''
            key = ''
            imgs  = db.GqlQuery("select * from Profile_Images WHERE name =:1", profile_id)
            team_name  = db.GqlQuery("select * from Teams WHERE name =:1", profile_id)
            team_images  = db.GqlQuery("select * from Teamimg WHERE user =:1", profile_id)
            friends  = db.GqlQuery("select * from Friends WHERE name =:1 order by added_date desc limit 10", profile_id)
            for clan in team_name:
                    name1 = clan.team_name_anycase
            for image in team_images:
                team_imagee = image.key()
            for img in imgs:
                key = img.key()
            self.render('profile.html', profile_id = profile_id,  current_user = current_user, friends = friends, team_img = team_imagee, team_name = name1, profile_image = key, username = self.user.name, email = self.user.email, firstname = self.user.first_name, last_name = self.user.last_name, country = self.user.country)
        else:
            self.redirect('/register')

そして、私のテンプレートの for ループ:

{% for friend in friends %}
    {{friend}}
    <br>
{%  endfor %}

オブジェクト自体ではなく、これらのアドレスが時々表示される理由を教えてくれる人はいますか? (一般的な場合でも)。

4

3 に答える 3

4

Friendクラスのデフォルト表現を定義していません。そのため、Python はデフォルトのオブジェクト__repr__メソッドを使用します。これは通常、メモリの場所を示します。

実際に表示したい文字列を返すモデルのメソッドを定義し__unicode__ます - それはreturn self.name.

于 2012-08-16T21:00:26.943 に答える
3

ビューでは、イテレータdb.GqlQuery("..")であるクエリ オブジェクトを返し、実際には、クエリによって返される各エンティティの既定のオブジェクト文字列表現を出力しています。

friend次のようにプロパティに繰り返しアクセスする必要があると思います。

{% for friend_tmp in friends %}
    {{friend_tmp.friend}}
    <br>
{%  endfor %}
于 2012-08-16T21:05:13.727 に答える
2

NDB を使用する場合は、repr(friend) の方がはるかに役立ちます。

于 2012-08-17T20:46:42.383 に答える