- core/bug: 各轮电商项目测试清单 xlsx + 验证报告/套图提示词梳理 md - core/qa: consumption_summary / diag_login / diag_sessions / probe_usage 诊断脚本 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
19 lines
1.0 KiB
Python
19 lines
1.0 KiB
Python
import os, sys
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "backend"))
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "airshelf.settings.development")
|
|
import django; django.setup()
|
|
from apps.accounts.models import LoginSession
|
|
from rest_framework.authtoken.models import Token
|
|
|
|
print("=== 最近 30 条成功登录(LoginSession) ===")
|
|
for s in LoginSession.objects.select_related("user").order_by("-created_at")[:30]:
|
|
fields = {f.name: getattr(s, f.name) for f in s._meta.fields}
|
|
extra = {k: v for k, v in fields.items() if k not in ("id", "user", "created_at", "updated_at")}
|
|
print(f" {s.created_at:%Y-%m-%d %H:%M:%S} user={s.user.username:18} {extra}")
|
|
|
|
print(f"\n LoginSession 总数 = {LoginSession.objects.count()}")
|
|
print(f" 现存 Token(已登录会话) 数 = {Token.objects.count()}")
|
|
print("\n=== 现存 Token 的用户 + 签发时间 ===")
|
|
for t in Token.objects.select_related("user").order_by("-created")[:30]:
|
|
print(f" {t.created:%Y-%m-%d %H:%M:%S} {t.user.username}")
|