0

Google App Engine ボイラー プレートの編集プロファイル プレートを作成しようとしています

ユーザーがプロファイルを編集したとき。モデルが

class User(User):
"""
Universal user model. Can be used with App Engine's default users API,
own auth or third party authentication methods (OpenId, OAuth etc).
based on https://gist.github.com/kylefinley
"""

#: Creation date.
created = model.DateTimeProperty(auto_now_add=True)
#: Modification date.
updated = model.DateTimeProperty(auto_now=True)
#: User defined unique name, also used as key_name.
username = model.StringProperty(required=True)
#: User Name
name = model.StringProperty()
#: User Last Name
last_name = model.StringProperty()
#: User email
email = model.StringProperty(required=True)
#: Password, only set for own authentication.
password = model.StringProperty(required=True)
#: User Country
country = model.StringProperty()

@classmethod
def get_by_email(cls, email):
    """Returns a user object based on an email.

    :param email:
        String representing the user email. Examples:

    :returns:
        A user object.
    """
    return cls.query(cls.email == email).get()

特定のユーザー セッションのコードでユーザー オブジェクトを取得しました

user_info = models.User.get_by_id(long(self.user_id))

#Made required changes to to user object such as country name lastname

#saved the entity

user_info.put()

すべて正常に動作します。ユーザー エンティティが更新されます。しかし、固有の実体はそうではありません。

私の主な質問はどうすれば更新できますか?

しかし、管理ビューに一意のテーブルが表示されると

一意のテーブルの画像は https://www.dropbox.com/s/sfbsn63023gsxil/unique.pngです

このテーブルは更新されませんが、このテーブルはエンティティが更新されるためのものです。

ユーザー テーブルの画像は https://www.dropbox.com/s/sfhw5l5ixdmlq7c/user.pngです。

データ ストア内の一意のプロパティを更新するにはどうすればよいですか?

4

1 に答える 1

1

ユーザー名を key_name として使用したいようですが、実装が混乱しています。

まず、Unique エンティティを更新しようとしているコードが投稿されていません。実際、User エンティティと Unique エンティティの間にはつながりがありません。Unique エンティティを更新する場合は、自分で明示的にコーディングする必要があります。

全体像としては、一意のエンティティが必要な理由がまったくわかりません。おそらくやりたいことは、User オブジェクトを作成するときにユーザー名を key_name として使用することです。

于 2012-06-13T15:25:15.093 に答える