from __future__ import annotations from django.core.validators import RegexValidator from django.db import models from django.utils.text import slugify hostname_validator = RegexValidator( regex=r"^(?=.{1,253}$)(?!-)[A-Za-z0-9-]{1,63}(? str: primary = self.hostname or self.ipv4 or self.ipv6 or "unassigned" return f"{self.display_name} ({primary})" @property def image_url(self) -> str | None: try: return self.image.url if self.image else None except Exception: return None @property def initial(self) -> str: return (self.display_name or "?").strip()[:1].upper() or "?"