Установить ключ из переменной класса в Google App Engine - PullRequest
1 голос
/ 16 сентября 2011

У меня есть этот класс, и я хочу использовать телефон в качестве ключа.Ключ для ввода формы task.phone = self.request.get ('phone').Я искал ответ, но нашел только то, что он был внутри кода (например, задача = (телефон = 5555)).

class task(db.Model):
    name = db.StringProperty()
    lanme = db.StringProperty()
    phone = db.StringProperty()
    adress = db.StringProperty()
    visits = db.IntegerProperty()

1 Ответ

1 голос
/ 16 сентября 2011

простое решение было бы:

task = task(key_name=adress)

Более продвинутое решение было бы:

class task(db.Model):
    ...
    def __init__(self, *args, **kwargs):
        kwargs['key_name'] = kwargs['adress']
        db.Model.__init__(self, *args, **kwargs)

Но нужно помнить, что appengine не используетВ конкретном поле в качестве ключа всегда будет ключ, который может совпадать или не совпадать с конкретным полем.Если они одинаковы, это «совпадение».Как общее предложение, оставьте ключ как есть.Есть некоторые проблемы, которые вы можете не учитывать, такие как уникальность ключей и их переопределение.

Пара замечаний:

  1. Имя класса должно быть Задача, а не задача
  2. Это адрес, а не адрес
...