2011-04-29 51 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