У меня есть база данных выставок, связанных по внешнему ключу с базой данных мест, где они проходят. Шаблоны 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.
Я скорее думал, что это так. Как мне добиться этого?