Я нашел ответ на этот вопрос вчера (и сегодня у меня возникли проблемы с поиском ссылки). Ссылка, которую я увидел, решила проблему ограничения доступа к экземпляру модели Google App Engine путем перегрузки db.UserProperty, вот так:
class CurrentUserProperty(db.UserProperty):
def checkCurrentUser(self, value):
if value != users.get_current_user():
raise db.BadValueError(
'Property %s must be the current user' % self.name)
return value
def __init__(self, verbose_name=None, name=None):
super(CurrentUserProperty, self).__init__(
verbose_name, name, required=True,
validator=self.checkCurrentUser)
# then, in the model to have limited access:
def MyModel(db.Model):
owner = CurrentUserProperty()
Поскольку мне было довольно сложно найти эту ссылку, я собираюсь оставить этот вопрос открытым (хотя вопрос отвечает сам на себя). Однако общая проблема заключается в том, как создать систему разрешений в Google App Engine, чтобы только определенные пользователи (например, «владелец») могли получить доступ к конкретному экземпляру модели. Если у вас есть предложения по этому поводу, я бы в целом наслаждался вашими мыслями.
Спасибо за чтение.
Brian
постскриптум Почему всегда получается «Вопрос, который вы задаете, кажется субъективным и, вероятно, будет закрыт». когда кто-нибудь задает вопрос в наши дни? Разве это предупреждение не должно указывать на какие-то объективные критерии, указывающие на то, почему предупреждение есть?