diff --git a/netbox/circuits/models/circuits.py b/netbox/circuits/models/circuits.py index 68c938aa99a..f34df0d6a21 100644 --- a/netbox/circuits/models/circuits.py +++ b/netbox/circuits/models/circuits.py @@ -28,9 +28,6 @@ class CircuitType(OrganizationalModel): blank=True ) - def get_absolute_url(self): - return reverse('circuits:circuittype', args=[self.pk]) - class Meta: ordering = ('name',) verbose_name = _('circuit type') @@ -140,9 +137,6 @@ class Meta: def __str__(self): return self.cid - def get_absolute_url(self): - return reverse('circuits:circuit', args=[self.pk]) - def get_status_color(self): return CircuitStatusChoices.colors.get(self.status) @@ -173,9 +167,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('circuits:circuitgroup', args=[self.pk]) - class CircuitGroupAssignment(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, ChangeLoggedModel): """ diff --git a/netbox/circuits/models/providers.py b/netbox/circuits/models/providers.py index 31c8bccb297..59399752723 100644 --- a/netbox/circuits/models/providers.py +++ b/netbox/circuits/models/providers.py @@ -45,9 +45,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('circuits:provider', args=[self.pk]) - class ProviderAccount(ContactsMixin, PrimaryModel): """ @@ -91,9 +88,6 @@ def __str__(self): return f'{self.account} ({self.name})' return f'{self.account}' - def get_absolute_url(self): - return reverse('circuits:provideraccount', args=[self.pk]) - class ProviderNetwork(PrimaryModel): """ @@ -128,6 +122,3 @@ class Meta: def __str__(self): return self.name - - def get_absolute_url(self): - return reverse('circuits:providernetwork', args=[self.pk]) diff --git a/netbox/core/models/data.py b/netbox/core/models/data.py index 97f9fdac738..a40b58bc7a8 100644 --- a/netbox/core/models/data.py +++ b/netbox/core/models/data.py @@ -84,9 +84,6 @@ class Meta: def __str__(self): return f'{self.name}' - def get_absolute_url(self): - return reverse('core:datasource', args=[self.pk]) - @property def docs_url(self): return f'{settings.STATIC_URL}docs/models/{self._meta.app_label}/{self._meta.model_name}/' diff --git a/netbox/dcim/models/cables.py b/netbox/dcim/models/cables.py index f996fe67d29..f89d5762787 100644 --- a/netbox/dcim/models/cables.py +++ b/netbox/dcim/models/cables.py @@ -116,9 +116,6 @@ def __str__(self): pk = self.pk or self._pk return self.label or f'#{pk}' - def get_absolute_url(self): - return reverse('dcim:cable', args=[self.pk]) - @property def a_terminations(self): if hasattr(self, '_a_terminations'): diff --git a/netbox/dcim/models/device_components.py b/netbox/dcim/models/device_components.py index 54628aa733c..d25ed261cff 100644 --- a/netbox/dcim/models/device_components.py +++ b/netbox/dcim/models/device_components.py @@ -301,9 +301,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('console port') verbose_name_plural = _('console ports') - def get_absolute_url(self): - return reverse('dcim:consoleport', kwargs={'pk': self.pk}) - class ConsoleServerPort(ModularComponentModel, CabledObjectModel, PathEndpoint, TrackingModelMixin): """ @@ -330,9 +327,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('console server port') verbose_name_plural = _('console server ports') - def get_absolute_url(self): - return reverse('dcim:consoleserverport', kwargs={'pk': self.pk}) - # # Power components @@ -370,9 +364,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('power port') verbose_name_plural = _('power ports') - def get_absolute_url(self): - return reverse('dcim:powerport', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -492,9 +483,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('power outlet') verbose_name_plural = _('power outlets') - def get_absolute_url(self): - return reverse('dcim:poweroutlet', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -750,9 +738,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('interface') verbose_name_plural = _('interfaces') - def get_absolute_url(self): - return reverse('dcim:interface', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -1011,9 +996,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('front port') verbose_name_plural = _('front ports') - def get_absolute_url(self): - return reverse('dcim:frontport', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -1069,9 +1051,6 @@ class Meta(ModularComponentModel.Meta): verbose_name = _('rear port') verbose_name_plural = _('rear ports') - def get_absolute_url(self): - return reverse('dcim:rearport', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -1128,9 +1107,6 @@ class Meta(ModularComponentModel.Meta): class MPTTMeta: order_insertion_by = ('module',) - def get_absolute_url(self): - return reverse('dcim:modulebay', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -1169,9 +1145,6 @@ class Meta(ComponentModel.Meta): verbose_name = _('device bay') verbose_name_plural = _('device bays') - def get_absolute_url(self): - return reverse('dcim:devicebay', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -1215,9 +1188,6 @@ class Meta: verbose_name = _('inventory item role') verbose_name_plural = _('inventory item roles') - def get_absolute_url(self): - return reverse('dcim:inventoryitemrole', args=[self.pk]) - class InventoryItem(MPTTModel, ComponentModel, TrackingModelMixin): """ @@ -1311,9 +1281,6 @@ class Meta: verbose_name = _('inventory item') verbose_name_plural = _('inventory items') - def get_absolute_url(self): - return reverse('dcim:inventoryitem', kwargs={'pk': self.pk}) - def clean(self): super().clean() diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index a2b78957e40..3031673b04e 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -54,9 +54,6 @@ class Meta: verbose_name = _('manufacturer') verbose_name_plural = _('manufacturers') - def get_absolute_url(self): - return reverse('dcim:manufacturer', args=[self.pk]) - class DeviceType(ImageAttachmentsMixin, PrimaryModel, WeightMixin): """ @@ -217,9 +214,6 @@ def __init__(self, *args, **kwargs): self._original_front_image = self.__dict__.get('front_image') self._original_rear_image = self.__dict__.get('rear_image') - def get_absolute_url(self): - return reverse('dcim:devicetype', args=[self.pk]) - @property def full_name(self): return f"{self.manufacturer} {self.model}" @@ -414,9 +408,6 @@ class Meta: def __str__(self): return self.model - def get_absolute_url(self): - return reverse('dcim:moduletype', args=[self.pk]) - @property def full_name(self): return f"{self.manufacturer} {self.model}" @@ -497,9 +488,6 @@ class Meta: verbose_name = _('device role') verbose_name_plural = _('device roles') - def get_absolute_url(self): - return reverse('dcim:devicerole', args=[self.pk]) - class Platform(OrganizationalModel): """ @@ -527,9 +515,6 @@ class Meta: verbose_name = _('platform') verbose_name_plural = _('platforms') - def get_absolute_url(self): - return reverse('dcim:platform', args=[self.pk]) - def update_interface_bridges(device, interface_templates, module=None): """ @@ -823,9 +808,6 @@ def __str__(self): return f'{self.device_type.manufacturer} {self.device_type.model} ({self.pk})' return super().__str__() - def get_absolute_url(self): - return reverse('dcim:device', args=[self.pk]) - def clean(self): super().clean() @@ -1192,9 +1174,6 @@ class Meta: def __str__(self): return f'{self.module_bay.name}: {self.module_type} ({self.pk})' - def get_absolute_url(self): - return reverse('dcim:module', args=[self.pk]) - def get_status_color(self): return ModuleStatusChoices.colors.get(self.status) @@ -1343,9 +1322,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('dcim:virtualchassis', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -1445,9 +1421,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('dcim:virtualdevicecontext', kwargs={'pk': self.pk}) - def get_status_color(self): return VirtualDeviceContextStatusChoices.colors.get(self.status) diff --git a/netbox/dcim/models/power.py b/netbox/dcim/models/power.py index 826eaae9ce3..168428c4427 100644 --- a/netbox/dcim/models/power.py +++ b/netbox/dcim/models/power.py @@ -58,9 +58,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('dcim:powerpanel', args=[self.pk]) - def clean(self): super().clean() @@ -167,9 +164,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('dcim:powerfeed', args=[self.pk]) - def clean(self): super().clean() diff --git a/netbox/dcim/models/racks.py b/netbox/dcim/models/racks.py index 3aead09cac3..226074444e3 100644 --- a/netbox/dcim/models/racks.py +++ b/netbox/dcim/models/racks.py @@ -165,9 +165,6 @@ class Meta: def __str__(self): return self.model - def get_absolute_url(self): - return reverse('dcim:racktype', args=[self.pk]) - @property def full_name(self): return f"{self.manufacturer} {self.model}" @@ -230,9 +227,6 @@ class Meta: verbose_name = _('rack role') verbose_name_plural = _('rack roles') - def get_absolute_url(self): - return reverse('dcim:rackrole', args=[self.pk]) - class Rack(ContactsMixin, ImageAttachmentsMixin, RackBase): """ @@ -364,9 +358,6 @@ def __str__(self): return f'{self.name} ({self.facility_id})' return self.name - def get_absolute_url(self): - return reverse('dcim:rack', args=[self.pk]) - def clean(self): super().clean() @@ -699,9 +690,6 @@ class Meta: def __str__(self): return "Reservation for rack {}".format(self.rack) - def get_absolute_url(self): - return reverse('dcim:rackreservation', args=[self.pk]) - def clean(self): super().clean() diff --git a/netbox/dcim/models/sites.py b/netbox/dcim/models/sites.py index c1da807adf6..7884afa5496 100644 --- a/netbox/dcim/models/sites.py +++ b/netbox/dcim/models/sites.py @@ -62,9 +62,6 @@ class Meta: verbose_name = _('region') verbose_name_plural = _('regions') - def get_absolute_url(self): - return reverse('dcim:region', args=[self.pk]) - def get_site_count(self): return Site.objects.filter( Q(region=self) | @@ -115,9 +112,6 @@ class Meta: verbose_name = _('site group') verbose_name_plural = _('site groups') - def get_absolute_url(self): - return reverse('dcim:sitegroup', args=[self.pk]) - def get_site_count(self): return Site.objects.filter( Q(group=self) | @@ -241,9 +235,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('dcim:site', args=[self.pk]) - def get_status_color(self): return SiteStatusChoices.colors.get(self.status) @@ -322,9 +313,6 @@ class Meta: verbose_name = _('location') verbose_name_plural = _('locations') - def get_absolute_url(self): - return reverse('dcim:location', args=[self.pk]) - def get_status_color(self): return LocationStatusChoices.colors.get(self.status) diff --git a/netbox/ipam/models/asns.py b/netbox/ipam/models/asns.py index d02efd91cf8..4b51eedbb3c 100644 --- a/netbox/ipam/models/asns.py +++ b/netbox/ipam/models/asns.py @@ -54,9 +54,6 @@ class Meta: def __str__(self): return f'{self.name} ({self.range_as_string()})' - def get_absolute_url(self): - return reverse('ipam:asnrange', args=[self.pk]) - @property def range(self): return range(self.start, self.end + 1) @@ -128,9 +125,6 @@ class Meta: def __str__(self): return f'AS{self.asn_with_asdot}' - def get_absolute_url(self): - return reverse('ipam:asn', args=[self.pk]) - @property def asn_asdot(self): """ diff --git a/netbox/ipam/models/fhrp.py b/netbox/ipam/models/fhrp.py index c3a7084b61b..bf60f188a19 100644 --- a/netbox/ipam/models/fhrp.py +++ b/netbox/ipam/models/fhrp.py @@ -71,9 +71,6 @@ def __str__(self): return name - def get_absolute_url(self): - return reverse('ipam:fhrpgroup', args=[self.pk]) - class FHRPGroupAssignment(ChangeLoggedModel): interface_type = models.ForeignKey( diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py index 0b8e3a8dfc8..7bf97897b47 100644 --- a/netbox/ipam/models/ip.py +++ b/netbox/ipam/models/ip.py @@ -71,9 +71,6 @@ class Meta: verbose_name = _('RIR') verbose_name_plural = _('RIRs') - def get_absolute_url(self): - return reverse('ipam:rir', args=[self.pk]) - class Aggregate(ContactsMixin, GetAvailablePrefixesMixin, PrimaryModel): """ @@ -118,9 +115,6 @@ class Meta: def __str__(self): return str(self.prefix) - def get_absolute_url(self): - return reverse('ipam:aggregate', args=[self.pk]) - def clean(self): super().clean() @@ -203,9 +197,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('ipam:role', args=[self.pk]) - class Prefix(ContactsMixin, GetAvailablePrefixesMixin, PrimaryModel): """ @@ -303,9 +294,6 @@ def __init__(self, *args, **kwargs): def __str__(self): return str(self.prefix) - def get_absolute_url(self): - return reverse('ipam:prefix', args=[self.pk]) - def clean(self): super().clean() @@ -551,9 +539,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('ipam:iprange', args=[self.pk]) - def clean(self): super().clean() @@ -798,9 +783,6 @@ def __init__(self, *args, **kwargs): self._original_assigned_object_id = self.__dict__.get('assigned_object_id') self._original_assigned_object_type_id = self.__dict__.get('assigned_object_type_id') - def get_absolute_url(self): - return reverse('ipam:ipaddress', args=[self.pk]) - def get_duplicates(self): return IPAddress.objects.filter( vrf=self.vrf, diff --git a/netbox/ipam/models/services.py b/netbox/ipam/models/services.py index 71f34c66c32..e878870cbae 100644 --- a/netbox/ipam/models/services.py +++ b/netbox/ipam/models/services.py @@ -59,9 +59,6 @@ class Meta: verbose_name = _('service template') verbose_name_plural = _('service templates') - def get_absolute_url(self): - return reverse('ipam:servicetemplate', args=[self.pk]) - class Service(ContactsMixin, ServiceBase, PrimaryModel): """ @@ -102,9 +99,6 @@ class Meta: verbose_name = _('service') verbose_name_plural = _('services') - def get_absolute_url(self): - return reverse('ipam:service', args=[self.pk]) - @property def parent(self): return self.device or self.virtual_machine diff --git a/netbox/ipam/models/vlans.py b/netbox/ipam/models/vlans.py index 998bc9e2c1e..852dfe1486a 100644 --- a/netbox/ipam/models/vlans.py +++ b/netbox/ipam/models/vlans.py @@ -84,9 +84,6 @@ class Meta: verbose_name = _('VLAN group') verbose_name_plural = _('VLAN groups') - def get_absolute_url(self): - return reverse('ipam:vlangroup', args=[self.pk]) - def clean(self): super().clean() @@ -237,9 +234,6 @@ class Meta: def __str__(self): return f'{self.name} ({self.vid})' - def get_absolute_url(self): - return reverse('ipam:vlan', args=[self.pk]) - def clean(self): super().clean() diff --git a/netbox/ipam/models/vrfs.py b/netbox/ipam/models/vrfs.py index 1f9b928f588..f0a6d815ec2 100644 --- a/netbox/ipam/models/vrfs.py +++ b/netbox/ipam/models/vrfs.py @@ -67,9 +67,6 @@ def __str__(self): return f'{self.name} ({self.rd})' return self.name - def get_absolute_url(self): - return reverse('ipam:vrf', args=[self.pk]) - class RouteTarget(PrimaryModel): """ @@ -96,6 +93,3 @@ class Meta: def __str__(self): return self.name - - def get_absolute_url(self): - return reverse('ipam:routetarget', args=[self.pk]) diff --git a/netbox/netbox/models/__init__.py b/netbox/netbox/models/__init__.py index aea5f00cc1c..b1f7cfd4891 100644 --- a/netbox/netbox/models/__init__.py +++ b/netbox/netbox/models/__init__.py @@ -3,6 +3,7 @@ from django.core.exceptions import ObjectDoesNotExist from django.core.validators import ValidationError from django.db import models +from django.urls import reverse from django.utils.translation import gettext_lazy as _ from mptt.models import MPTTModel, TreeForeignKey @@ -40,6 +41,9 @@ class Meta: def docs_url(self): return f'{settings.STATIC_URL}docs/models/{self._meta.app_label}/{self._meta.model_name}/' + def get_absolute_url(self): + return reverse(f'{self._meta.app_label}:{self._meta.model_name}', args=[self.pk]) + # # Base model classes diff --git a/netbox/tenancy/models/contacts.py b/netbox/tenancy/models/contacts.py index e31330657c7..46ca9726107 100644 --- a/netbox/tenancy/models/contacts.py +++ b/netbox/tenancy/models/contacts.py @@ -32,17 +32,11 @@ class Meta: verbose_name = _('contact group') verbose_name_plural = _('contact groups') - def get_absolute_url(self): - return reverse('tenancy:contactgroup', args=[self.pk]) - class ContactRole(OrganizationalModel): """ Functional role for a Contact assigned to an object. """ - def get_absolute_url(self): - return reverse('tenancy:contactrole', args=[self.pk]) - class Meta: ordering = ('name',) verbose_name = _('contact role') @@ -106,9 +100,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('tenancy:contact', args=[self.pk]) - class ContactAssignment(CustomFieldsMixin, ExportTemplatesMixin, TagsMixin, ChangeLoggedModel): object_type = models.ForeignKey( diff --git a/netbox/tenancy/models/tenants.py b/netbox/tenancy/models/tenants.py index dfc144dd2a3..118a63d31cc 100644 --- a/netbox/tenancy/models/tenants.py +++ b/netbox/tenancy/models/tenants.py @@ -32,9 +32,6 @@ class Meta: verbose_name = _('tenant group') verbose_name_plural = _('tenant groups') - def get_absolute_url(self): - return reverse('tenancy:tenantgroup', args=[self.pk]) - class Tenant(ContactsMixin, PrimaryModel): """ @@ -90,6 +87,3 @@ class Meta: def __str__(self): return self.name - - def get_absolute_url(self): - return reverse('tenancy:tenant', args=[self.pk]) diff --git a/netbox/virtualization/models/clusters.py b/netbox/virtualization/models/clusters.py index 7f00d72a716..ed1756ee84e 100644 --- a/netbox/virtualization/models/clusters.py +++ b/netbox/virtualization/models/clusters.py @@ -25,9 +25,6 @@ class Meta: verbose_name = _('cluster type') verbose_name_plural = _('cluster types') - def get_absolute_url(self): - return reverse('virtualization:clustertype', args=[self.pk]) - class ClusterGroup(ContactsMixin, OrganizationalModel): """ @@ -45,9 +42,6 @@ class Meta: verbose_name = _('cluster group') verbose_name_plural = _('cluster groups') - def get_absolute_url(self): - return reverse('virtualization:clustergroup', args=[self.pk]) - class Cluster(ContactsMixin, PrimaryModel): """ @@ -124,9 +118,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('virtualization:cluster', args=[self.pk]) - def get_status_color(self): return ClusterStatusChoices.colors.get(self.status) diff --git a/netbox/virtualization/models/virtualmachines.py b/netbox/virtualization/models/virtualmachines.py index 17929f476ff..d2ea34bef0b 100644 --- a/netbox/virtualization/models/virtualmachines.py +++ b/netbox/virtualization/models/virtualmachines.py @@ -172,9 +172,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('virtualization:virtualmachine', args=[self.pk]) - def clean(self): super().clean() @@ -377,9 +374,6 @@ class Meta(ComponentModel.Meta): verbose_name = _('interface') verbose_name_plural = _('interfaces') - def get_absolute_url(self): - return reverse('virtualization:vminterface', kwargs={'pk': self.pk}) - def clean(self): super().clean() @@ -437,6 +431,3 @@ class VirtualDisk(ComponentModel, TrackingModelMixin): class Meta(ComponentModel.Meta): verbose_name = _('virtual disk') verbose_name_plural = _('virtual disks') - - def get_absolute_url(self): - return reverse('virtualization:virtualdisk', args=[self.pk]) diff --git a/netbox/vpn/models/crypto.py b/netbox/vpn/models/crypto.py index 2769430fd7d..1d84fa814d9 100644 --- a/netbox/vpn/models/crypto.py +++ b/netbox/vpn/models/crypto.py @@ -62,9 +62,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('vpn:ikeproposal', args=[self.pk]) - class IKEPolicy(PrimaryModel): name = models.CharField( @@ -107,9 +104,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('vpn:ikepolicy', args=[self.pk]) - def clean(self): super().clean() @@ -167,9 +161,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('vpn:ipsecproposal', args=[self.pk]) - def clean(self): super().clean() @@ -212,9 +203,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('vpn:ipsecpolicy', args=[self.pk]) - class IPSecProfile(PrimaryModel): name = models.CharField( @@ -252,6 +240,3 @@ class Meta: def __str__(self): return self.name - - def get_absolute_url(self): - return reverse('vpn:ipsecprofile', args=[self.pk]) diff --git a/netbox/vpn/models/l2vpn.py b/netbox/vpn/models/l2vpn.py index 39956edc812..1a366206ab9 100644 --- a/netbox/vpn/models/l2vpn.py +++ b/netbox/vpn/models/l2vpn.py @@ -68,9 +68,6 @@ def __str__(self): return f'{self.name} ({self.identifier})' return f'{self.name}' - def get_absolute_url(self): - return reverse('vpn:l2vpn', args=[self.pk]) - @cached_property def can_add_termination(self): if self.type in L2VPNTypeChoices.P2P and self.terminations.count() >= 2: @@ -121,9 +118,6 @@ def __str__(self): return f'{self.assigned_object} <> {self.l2vpn}' return super().__str__() - def get_absolute_url(self): - return reverse('vpn:l2vpntermination', args=[self.pk]) - def clean(self): # Only check is assigned_object is set. Required otherwise we have an Integrity Error thrown. if self.assigned_object: diff --git a/netbox/vpn/models/tunnels.py b/netbox/vpn/models/tunnels.py index 6f4fa4182c6..3a0f1dc1458 100644 --- a/netbox/vpn/models/tunnels.py +++ b/netbox/vpn/models/tunnels.py @@ -26,9 +26,6 @@ class Meta: verbose_name = _('tunnel group') verbose_name_plural = _('tunnel groups') - def get_absolute_url(self): - return reverse('vpn:tunnelgroup', args=[self.pk]) - class Tunnel(PrimaryModel): name = models.CharField( @@ -97,9 +94,6 @@ class Meta: def __str__(self): return self.name - def get_absolute_url(self): - return reverse('vpn:tunnel', args=[self.pk]) - def get_status_color(self): return TunnelStatusChoices.colors.get(self.status) diff --git a/netbox/wireless/models.py b/netbox/wireless/models.py index 4214ac29df2..e48c87167bf 100644 --- a/netbox/wireless/models.py +++ b/netbox/wireless/models.py @@ -69,9 +69,6 @@ class Meta: verbose_name = _('wireless LAN group') verbose_name_plural = _('wireless LAN groups') - def get_absolute_url(self): - return reverse('wireless:wirelesslangroup', args=[self.pk]) - class WirelessLAN(WirelessAuthenticationBase, PrimaryModel): """ @@ -119,9 +116,6 @@ class Meta: def __str__(self): return self.ssid - def get_absolute_url(self): - return reverse('wireless:wirelesslan', args=[self.pk]) - def get_status_color(self): return WirelessLANStatusChoices.colors.get(self.status) @@ -222,9 +216,6 @@ class Meta: def __str__(self): return self.ssid or f'#{self.pk}' - def get_absolute_url(self): - return reverse('wireless:wirelesslink', args=[self.pk]) - def get_status_color(self): return LinkStatusChoices.colors.get(self.status)