我有一个展览清单数据库,通过外键与他们所在场馆的数据库相关联。 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.
我宁愿以为是。我该如何完成这项工作?
答案 0 :(得分:2)
错误消息是因为您已将类 Venue
分配给列表,而不是其实例。您需要调用该类来获取实例:
listing.venue = Venue()