22 lines
863 B
Python
22 lines
863 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="创建时间")
|
|
|
|
def __str__(self):
|
|
return f"{self.code} ({self.used_count}/{self.usage_limit})"
|
|
|
|
def is_available(self):
|
|
return self.used_count < self.usage_limit
|