Kod źródłowy modułu poradnia.keys.models
from django.db import models
from django.db.models.query import QuerySet
from django.urls import reverse
from django.utils.translation import gettext_lazy as _
from poradnia.users.models import User
from .utils import make_random_password
[dokumentacja]
class KeyQuerySet(QuerySet):
def for_user(self, user):
return self.filter(user=user)
[dokumentacja]
class Key(models.Model):
user = models.ForeignKey(User, verbose_name=_("User"), on_delete=models.CASCADE)
password = models.CharField(
max_length=75, default=make_random_password, verbose_name=_("Key")
)
description = models.CharField(max_length=75, verbose_name=_("Description"))
created_on = models.DateTimeField(auto_now_add=True, verbose_name=_("Created on"))
used_on = models.DateTimeField(null=True, verbose_name=_("Used on"))
download_on = models.DateTimeField(null=True, verbose_name=_("Download on"))
objects = KeyQuerySet.as_manager()
def get_absolute_url(self):
return reverse("keys:details", kwargs={"pk": self.pk})
def __str__(self):
return "%s" % (self.created_on)
class Meta:
unique_together = (("user", "password"),)
verbose_name = _("Access key")
verbose_name_plural = _("Access keys")