2012-04-14 14 views
0

以下是我的模型:用的AppEngine模型關聯臨時值查詢集

我有兩個表matchteam

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() 

在運行時,當一個POST請求到的處理功能之一製成,我要動態團隊評級,Match的queryset的關聯和發送的價值,這就是我努力做到:

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 = te1m.rating2 = te2但即使這似乎並不奏效。其他一切都完美無缺地工作。

請幫忙謝謝!

+0

「我得到錯誤」是非常無益的。當你「出錯」時,請在你的問題中包含回溯。 – 2012-04-17 23:40:28

+0

謝謝,下次會做。 – user993563 2012-04-18 04:58:21

回答

0

語法是setattr(m,'rating1',te1.rating1);但這與m.rating1 = te1.rating1沒有區別。

我們可以看到回溯?

+0

謝謝,我使用了錯誤的語法。 – user993563 2012-04-16 07:28:24