File: models.py

package info (click to toggle)
djangorestframework-api-key 3.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 392 kB
  • sloc: python: 926; makefile: 53; sh: 3
file content (29 lines) | stat: -rw-r--r-- 812 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from django.db import models

from rest_framework_api_key.models import AbstractAPIKey, BaseAPIKeyManager


class Hero(models.Model):
    objects = models.Manager()
    name = models.CharField(max_length=64)
    retired = models.BooleanField(default=False)

    class Meta:
        verbose_name_plural = "heroes"

    def __str__(self) -> str:
        return self.name


class HeroAPIKeyManager(BaseAPIKeyManager):
    def get_usable_keys(self) -> models.QuerySet:
        return super().get_usable_keys().filter(hero__retired=False)


class HeroAPIKey(AbstractAPIKey):
    objects = HeroAPIKeyManager()
    hero = models.ForeignKey(Hero, on_delete=models.CASCADE, related_name="api_keys")

    class Meta(AbstractAPIKey.Meta):
        verbose_name = "Hero API key"
        verbose_name_plural = "Hero API keys"