models.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from django.db import models
  2. from django.utils.translation import gettext_lazy as _
  3. class MenuLinkManager(models.Manager):
  4. pass
  5. class MenuLink(models.Model):
  6. POSITION_TOP = "top"
  7. POSITION_FOOTER = "footer"
  8. POSITION_BOTH = "both"
  9. LINK_POSITION_CHOICES = [
  10. (POSITION_TOP, _("Header navbar")),
  11. (POSITION_FOOTER, _("Footer")),
  12. (POSITION_BOTH, _("Header and footer")),
  13. ]
  14. link = models.URLField()
  15. title = models.CharField(max_length=150)
  16. position = models.CharField(max_length=20, choices=LINK_POSITION_CHOICES)
  17. order = models.IntegerField(default=0)
  18. css_class = models.CharField(max_length=255, null=True, blank=True)
  19. target = models.CharField(max_length=100, null=True, blank=True)
  20. rel = models.CharField(max_length=100, null=True, blank=True)
  21. objects = MenuLinkManager()
  22. class Meta:
  23. unique_together = ("link", "position")
  24. ordering = ("order",)
  25. get_latest_by = "order"
  26. def __str__(self):
  27. return self.link