При создании foreign_key
другая модель получает менеджера, который возвращает все экземпляры первой модели (см. навигация назад ).
В вашем случае он будет называться "subscription_set
".
Кроме того, Django допускает использование виртуальных полей в моделях, называемых «Методами модели», которые не связаны с данными базы данных, но реализованы как методы модели (см. методы модели )
Собрав все вместе, вы можете получить что-то вроде этого:
class HardwareNode(models.Model):
ip_address = models.CharField(max_length=15)
port = models.IntegerField()
location = models.CharField(max_length=50)
hostname = models.CharField(max_length=30)
subscription_count = lambda(self: self.subscription_set.count())
А затем включите subscription_count в список полей, которые будут перечислены на панели администратора.
Примечание: как обычно, я не проверял этот код, и он может даже не работать как есть, но он должен дать некоторое представление о том, как работать над вашей проблемой; более того, я использовал лямбду просто для краткости, но обычно я думаю, что было бы лучше (именуемый, поддерживающий и т. д.) использовать именованную.