2011-04-29 49 views
0

我有一個外鍵相關的展覽列表的數據庫,它與發生地點的數據庫相關。 Django模板通過listing.venue.name,listing.venue.url等訪問查詢結果中的場地信息。將值賦給已經用外鍵設置的查詢結果

但是,一些展覽會在臨時場地舉行,而且這些信息存儲在同一個數據庫中,其中listing.temp_venue_url等等。因爲在模板中添加條件似乎是浪費和傷心的,所以我想將臨時場所的信息移動到模板期望定期場所的信息的位置。這不起作用:

def transfer_temp_values(listings): 
    for listing in listings: 
     if listing.temp_venue: 
      listing.venue = Venue 
      listing.venue.name = listing.temp_venue 
      listing.venue.url = listing.temp_venue_url 
      listing.venue.state = listing.temp_venue_state 
      listing.venue.location = listing.temp_venue_location 

的錯誤讓我大吃一驚:

ValueError at /[...]/ 
Cannot assign "<class 'myproject.gsa.models.Venue'>": "Exhibition.venue" must be a "Venue" instance. 

我原以爲這是。我如何去完成這個?

回答

2

錯誤消息是因爲您已將Venue分配給列表,而不是其實例。您需要致電該課程以獲得實例:

listing.venue = Venue() 
+0

謝謝Daniel。 (facepalms) – 2011-04-29 14:18:12