TS-ResHub/invites/models.py

26 lines
969 B
Python

from django.db import models
from accounts.models import User
class RegistrationCode(models.Model):
code = models.CharField(max_length=32, unique=True, verbose_name="注册码")
manager = models.ForeignKey(
User,
on_delete=models.CASCADE,
limit_choices_to={"role": "manager"},
verbose_name="对应分管理"
)
description = models.CharField(max_length=100, blank=True, verbose_name="说明")
usage_limit = models.IntegerField(default=1, verbose_name="最多使用次数")
used_count = models.IntegerField(default=0, verbose_name="已使用次数")
created_at = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
class Meta:
verbose_name = "注册码申请"
verbose_name_plural = "注册码申请"
def __str__(self):
return f"{self.code} ({self.used_count}/{self.usage_limit})"
def is_available(self):
return self.used_count < self.usage_limit