shortener/src/redirect/models.py

40 lines
1.2 KiB
Python
Raw Normal View History

2022-02-27 23:07:57 +01:00
from django.conf import settings
from django.contrib.auth.models import AbstractUser, Group
from django.db import models
2022-03-25 19:57:42 +01:00
from django.urls import reverse
class Redirect(models.Model):
short_code = models.CharField(max_length=250, blank=False, null=False, unique=True)
2022-06-30 08:29:57 +02:00
target_url = models.URLField(max_length=50_000)
2022-02-27 23:07:57 +01:00
owner = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.SET_NULL,
related_name="owned_redirects",
null=True,
blank=True,
help_text="Give any user full permissions over this object. "
"The user will still at least need global view permissions "
"for the admin to work.",
)
group_owner = models.ForeignKey(
Group,
on_delete=models.SET_NULL,
related_name="owned_redirects",
null=True,
blank=True,
help_text="Give any group full permissions over this object."
"The user will still at least need global view permissions "
"for the admin to work.",
)
def __str__(self):
return f"{self.short_code} => {self.target_url}"
2022-03-25 19:57:42 +01:00
def get_absolute_url(self):
return reverse("redirect", args=(self.short_code,))
class RedirectUser(AbstractUser):
pass