Создание экземпляров записей Django с помощью сквозной модели ⇐ Python

Программы на Python
Anonymous
Создание экземпляров записей Django с помощью сквозной модели

Сообщение Anonymous »

Предположим, у вас есть концепция битвы, и в этой битве есть игроки и враги. Игроки представляют собой простую систему ManyToMany, но для врагов требуется модель «Насквозь», потому что, если в БД есть запись «Гоблин», игрокам нужно сражаться с ЭКСПРЕССОМ модели «Гоблин». Игроки могут сражаться со многими гоблинами, и каждому из них в любой момент времени требуется собственное здоровье/статус.
На данный момент у меня есть такая модель Django (я упрощаю код для читабельность и сосредоточенность на главном)

Код: Выделить всё

class Battle(models.Model):
players = ManyToMany(Player)
enemies = ManyToMany(Enemy, through=EnemyThroughModel)
При соответствующих изменениях в admin.py и тому подобном это работает: я могу присоединить к битве нескольких врагов и видеть их отдельно в списке администратора, ОДНАКО все они привязаны к одного и того же основного врага, и если я изменю одного из них (скажем, он получит урон), здоровье ВСЕХ ключевых ссылок на этого врага теперь уменьшится.
Есть ли способ, которым я могу это сделать? использовать сквозные модели для создания новых экземпляров врагов, чтобы у них было независимое здоровье/мана/и т. д.?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ough-model

Вернуться в «Python»