25 lines
965 B
Python
25 lines
965 B
Python
from django.db import models
|
|
|
|
# Create your models here.
|
|
|
|
from rest_framework.authtoken.models import Token
|
|
|
|
class CustomToken(Token):
|
|
# 在 Token 上添加更多字段(可以根据需求自定义)
|
|
extra_info = models.CharField(max_length=255, null=True, blank=True) # 示例附加信息字段
|
|
last_used = models.DateTimeField(auto_now=True) # 记录最后一次使用的时间
|
|
expiration_date = models.DateTimeField(null=True, blank=True) # 记录 Token 的过期时间
|
|
|
|
def __str__(self):
|
|
# 返回 Token 的字符串表示,包括用户名和 key
|
|
return f"Token for {self.user.username} - {self.key}"
|
|
|
|
def get_user_info(self):
|
|
# 可以提供一个方法来获取与 Token 关联的用户的更多信息
|
|
return {
|
|
"username": self.user.username,
|
|
"email": self.user.email,
|
|
"role": self.user.groups.first().name if self.user.groups.exists() else "No role"
|
|
}
|
|
|