From 2e6df9c235a3d84a76c8d139c55aafa9df9d62cf Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Fri, 20 Jul 2018 19:20:01 +0200 Subject: [PATCH] Fix #131 --- topologie/forms.py | 10 +--------- topologie/models.py | 6 +++++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/topologie/forms.py b/topologie/forms.py index 18831217..0cc7761b 100644 --- a/topologie/forms.py +++ b/topologie/forms.py @@ -87,15 +87,7 @@ class EditPortForm(FormRevMixin, ModelForm): self.fields['machine_interface'].queryset = ( Interface.objects.all().select_related('domain__extension') ) - self.fields['related'].queryset = ( - Port.objects.all() - .prefetch_related(Prefetch( - 'switch__interface_set', - queryset=(Interface.objects - .select_related('ipv4__ip_type__extension') - .select_related('domain__extension')) - )) - ) + self.fields['related'].queryset = Port.objects.all().prefetch_related('switch__machine_ptr__interface_set__domain__extension') class AddPortForm(FormRevMixin, ModelForm): diff --git a/topologie/models.py b/topologie/models.py index e1c945c7..522b9673 100644 --- a/topologie/models.py +++ b/topologie/models.py @@ -274,8 +274,12 @@ class Switch(AclMixin, Machine): """ Returns the 'main' interface of the switch """ return self.interface_set.first() + @cached_property + def get_name(self): + return self.name or self.main_interface().domain.name + def __str__(self): - return str(self.main_interface()) + return str(self.get_name) class ModelSwitch(AclMixin, RevMixin, models.Model):