2012-04-14 2 views
0

Следующая моя модель:ассоциированными временные значения с Appengine модели querysets

У меня есть две таблицы match и team:

class Match(DictModel): 
    date_time = db.DateTimeProperty() 
    team1 = db.StringProperty() 
    team2 = db.StringProperty() 
    venue = db.StringProperty() 
    result = db.IntegerProperty() 

class Team(DictModel): 
    tslug = db.StringProperty() 
    name = db.StringProperty() 
    matches_played = db.IntegerProperty() 
    matches_won = db.IntegerProperty() 
    rating = db.FloatProperty() 

во время выполнения, когда запрос на запись производится на одной из функций обработчика , я хочу, чтобы динамически связать рейтинг команды с QuerySet из Match и отправить значение, это то, как я пытаюсь сделать:

matches = Match.all() 
     matches.filter('date_time <=', end) 
     matches.filter('date_time >=', start) 
     match_dict = functs.create_dict(matches) 
     self.response.out.write(match_dict) 

и у меня есть пользовательские функции, чтобы получить выборки рейтинга от текущей команды, это выглядит следующим образом:

def to_dict(self): 
     return dict([(p, unicode(getattr(self, p))) for p in self.properties()]) 

def create_dict(matches): 
    lst = [] 
    for m in matches: 
    t1 = m.team1 
    t2 = m.team2 
    te1 = Team.all().filter("name =", t1).get() 
    te2 = Team.all().filter("name =", t2).get() 
    m.setattr('rating1', te1.rating) 
    m.setattr('rating2', te2.rating) 
    lst.append(m) 
    data_dict = json.dumps([l.to_dict() for l in lst]) 
    return data_dict 

Проблема: я получаю ошибку в setattr вместо setattr я также попытался m.rating1 = te1 и m.rating2 = te2, но даже что, похоже, не работает. Все остальное работает безупречно.

Пожалуйста, помогите!

+0

«Я получаю ошибку» крайне бесполезно. Когда вы «получите ошибку», пожалуйста, включите трассировку в свой вопрос. –

+0

спасибо, сделаю со следующего раза. – user993563

ответ

0

Синтаксис setattr (m, 'rating1', te1.rating1); но это ничем не отличается от m.rating1 = te1.rating1.

Можем ли мы увидеть след назад?

+0

спасибо, я использовал неправильный синтаксис. – user993563

Смежные вопросы