Django 为已使用外键设置的查询结果赋值

Django 为已使用外键设置的查询结果赋值,django,Django,我有一个展览清单数据库,通过外键与举办地点数据库相关联。Django模板通过listing.venture.name、listing.venture.url等方式访问查询结果中的场馆信息 但是,有些展览在临时场馆举行,这些信息存储在同一个数据库中,即listing.temp\u vention\u url等。因为在模板上加上条件似乎是浪费和悲哀的,我想把临时场馆的信息转移到模板期望常规场馆信息的地方。这不起作用: def transfer_temp_values(listings): f

我有一个展览清单数据库,通过外键与举办地点数据库相关联。Django模板通过
listing.venture.name
listing.venture.url
等方式访问查询结果中的场馆信息

但是,有些展览在临时场馆举行,这些信息存储在同一个数据库中,即
listing.temp\u vention\u 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.
/[…]处的
ValueError/
无法分配“”:“展览.场馆”必须是“场馆”实例。

我还以为是。如何完成此操作?

错误消息是因为您已将类
地点
分配给列表,而不是它的实例。您需要调用该类以获取实例:

listing.venue = Venue()
谢谢你,丹尼尔。(掌纹)