Предположим, у вас есть концепция битвы, и в этой битве есть игроки и враги. Игроки представляют собой простую систему ManyToMany, но для врагов требуется модель «Насквозь», потому что, если в БД есть запись «Гоблин», игрокам нужно сражаться с ЭКСПРЕССОМ модели «Гоблин». Игроки могут сражаться со многими гоблинами, и каждому из них в любой момент времени требуется собственное здоровье/статус.
На данный момент у меня есть такая модель Django (я упрощаю код для читабельность и сосредоточенность на главном)
Код: Выделить всё
class Battle(models.Model):
players = ManyToMany(Player)
enemies = ManyToMany(Enemy, through=EnemyThroughModel)
При соответствующих изменениях в admin.py и тому подобном это работает: я могу присоединить к битве нескольких врагов и видеть их отдельно в списке администратора, ОДНАКО все они привязаны к одного и того же основного врага, и если я изменю одного из них (скажем, он получит урон), здоровье ВСЕХ ключевых ссылок на этого врага теперь уменьшится.
Есть ли способ, которым я могу это сделать? использовать сквозные модели для создания новых экземпляров врагов, чтобы у них было независимое здоровье/мана/и т. д.?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... ough-model