mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-22 23:46:44 -06:00
8356 model property
This commit is contained in:
parent
c53f8a0ceb
commit
e25f58768b
@ -54,10 +54,8 @@ class ClusterViewSet(NetBoxModelViewSet):
|
||||
#
|
||||
|
||||
class VirtualMachineViewSet(ConfigContextQuerySetMixin, NetBoxModelViewSet):
|
||||
queryset = VirtualMachine.objects.annotate(
|
||||
virtual_disk_space=Sum('virtualdisks__size')
|
||||
).prefetch_related(
|
||||
'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'tags'
|
||||
queryset = VirtualMachine.objects.prefetch_related(
|
||||
'site', 'cluster', 'device', 'role', 'tenant', 'platform', 'primary_ip4', 'primary_ip6', 'tags', 'virtualdisks',
|
||||
)
|
||||
filterset_class = filtersets.VirtualMachineFilterSet
|
||||
|
||||
|
@ -242,6 +242,10 @@ class VirtualMachine(ContactsMixin, RenderConfigMixin, ConfigContextModel, Prima
|
||||
else:
|
||||
return None
|
||||
|
||||
@property
|
||||
def virtual_disk_space(self):
|
||||
return sum([disk.size for disk in self.virtualdisks.all()])
|
||||
|
||||
|
||||
class VMInterface(NetBoxModel, BaseInterface, TrackingModelMixin):
|
||||
virtual_machine = models.ForeignKey(
|
||||
|
@ -112,8 +112,8 @@ class VirtualMachineTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable)
|
||||
def render_disk(self, value, record):
|
||||
if record.disk:
|
||||
return record.disk
|
||||
elif record.disk_size:
|
||||
return record.disk_size
|
||||
elif record.virtual_disk_space:
|
||||
return record.virtual_disk_space
|
||||
else:
|
||||
return '—'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user