mirror of https://github.com/jumpserver/jumpserver
perf: i18n
parent
8bad88e798
commit
83835747c5
|
@ -4,7 +4,6 @@ from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('audits', '0010_auto_20200811_1122'),
|
('audits', '0010_auto_20200811_1122'),
|
||||||
]
|
]
|
||||||
|
@ -13,6 +12,6 @@ class Migration(migrations.Migration):
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='userloginlog',
|
model_name='userloginlog',
|
||||||
name='backend',
|
name='backend',
|
||||||
field=models.CharField(default='', max_length=32, verbose_name='Authentication backend'),
|
field=models.CharField(default='', max_length=32, verbose_name='Auth backend'),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
@ -8,7 +8,6 @@ from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
('audits', '0023_auto_20230906_1322'),
|
('audits', '0023_auto_20230906_1322'),
|
||||||
|
@ -23,11 +22,14 @@ class Migration(migrations.Migration):
|
||||||
('key', models.CharField(max_length=128, verbose_name='Session key')),
|
('key', models.CharField(max_length=128, verbose_name='Session key')),
|
||||||
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
||||||
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
||||||
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2, verbose_name='Login type')),
|
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2,
|
||||||
('backend', models.CharField(default='', max_length=32, verbose_name='Authentication backend')),
|
verbose_name='Login type')),
|
||||||
|
('backend', models.CharField(default='', max_length=32, verbose_name='Auth backend')),
|
||||||
('date_created', models.DateTimeField(blank=True, null=True, verbose_name='Date created')),
|
('date_created', models.DateTimeField(blank=True, null=True, verbose_name='Date created')),
|
||||||
('date_expired', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Date expired')),
|
('date_expired',
|
||||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sessions', to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Date expired')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sessions',
|
||||||
|
to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'verbose_name': 'User session',
|
'verbose_name': 'User session',
|
||||||
|
|
|
@ -209,7 +209,7 @@ class UserLoginLog(models.Model):
|
||||||
)
|
)
|
||||||
datetime = models.DateTimeField(default=timezone.now, verbose_name=_("Login Date"), db_index=True)
|
datetime = models.DateTimeField(default=timezone.now, verbose_name=_("Login Date"), db_index=True)
|
||||||
backend = models.CharField(
|
backend = models.CharField(
|
||||||
max_length=32, default="", verbose_name=_("Authentication backend")
|
max_length=32, default="", verbose_name=_("Auth backend")
|
||||||
)
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -263,7 +263,7 @@ class UserSession(models.Model):
|
||||||
city = models.CharField(max_length=254, blank=True, null=True, verbose_name=_("Login city"))
|
city = models.CharField(max_length=254, blank=True, null=True, verbose_name=_("Login city"))
|
||||||
user_agent = models.CharField(max_length=254, blank=True, null=True, verbose_name=_("User agent"))
|
user_agent = models.CharField(max_length=254, blank=True, null=True, verbose_name=_("User agent"))
|
||||||
type = models.CharField(choices=LoginTypeChoices.choices, max_length=2, verbose_name=_("Login type"))
|
type = models.CharField(choices=LoginTypeChoices.choices, max_length=2, verbose_name=_("Login type"))
|
||||||
backend = models.CharField(max_length=32, default="", verbose_name=_("Authentication backend"))
|
backend = models.CharField(max_length=32, default="", verbose_name=_("Auth backend"))
|
||||||
date_created = models.DateTimeField(null=True, blank=True, verbose_name=_('Date created'))
|
date_created = models.DateTimeField(null=True, blank=True, verbose_name=_('Date created'))
|
||||||
user = models.ForeignKey(
|
user = models.ForeignKey(
|
||||||
'users.User', verbose_name=_('User'), related_name='sessions', on_delete=models.CASCADE
|
'users.User', verbose_name=_('User'), related_name='sessions', on_delete=models.CASCADE
|
||||||
|
|
|
@ -67,7 +67,7 @@ class UserLoginLogSerializer(serializers.ModelSerializer):
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
"user_agent": {"label": _("User agent")},
|
"user_agent": {"label": _("User agent")},
|
||||||
"reason_display": {"label": _("Reason display")},
|
"reason_display": {"label": _("Reason display")},
|
||||||
"backend_display": {"label": _("Authentication backend")},
|
"backend_display": {"label": _("Auth backend display")},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ class UserSessionSerializer(serializers.ModelSerializer):
|
||||||
]
|
]
|
||||||
fields = fields_small
|
fields = fields_small
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
"backend_display": {"label": _("Authentication backend")},
|
"backend_display": {"label": _("Auth backend display")},
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_is_current_user_session(self, obj):
|
def get_is_current_user_session(self, obj):
|
||||||
|
|
|
@ -2551,7 +2551,7 @@ msgstr ""
|
||||||
|
|
||||||
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
||||||
#: audits/serializers.py:184
|
#: audits/serializers.py:184
|
||||||
msgid "Authentication backend"
|
msgid "Auth backend"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: audits/models.py:256
|
#: audits/models.py:256
|
||||||
|
@ -6628,7 +6628,7 @@ msgid "Can download session replay"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: terminal/models/session/session.py:34
|
#: terminal/models/session/session.py:34
|
||||||
msgid "Account id"
|
msgid "Account ID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:118
|
#: terminal/models/session/session.py:36 terminal/models/session/sharing.py:118
|
||||||
|
|
|
@ -2676,7 +2676,7 @@ msgstr "日付ログイン"
|
||||||
|
|
||||||
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
||||||
#: audits/serializers.py:184
|
#: audits/serializers.py:184
|
||||||
msgid "Authentication backend"
|
msgid "Auth backend"
|
||||||
msgstr "認証バックエンド"
|
msgstr "認証バックエンド"
|
||||||
|
|
||||||
#: audits/models.py:256
|
#: audits/models.py:256
|
||||||
|
@ -7027,7 +7027,7 @@ msgid "Can download session replay"
|
||||||
msgstr "セッション再生をダウンロードできます"
|
msgstr "セッション再生をダウンロードできます"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:35
|
#: terminal/models/session/session.py:35
|
||||||
msgid "Account id"
|
msgid "Account ID"
|
||||||
msgstr "アカウント ID"
|
msgstr "アカウント ID"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
|
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
|
||||||
|
|
|
@ -2627,7 +2627,7 @@ msgstr "登录日期"
|
||||||
|
|
||||||
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
||||||
#: audits/serializers.py:184
|
#: audits/serializers.py:184
|
||||||
msgid "Authentication backend"
|
msgid "Auth backend"
|
||||||
msgstr "认证方式"
|
msgstr "认证方式"
|
||||||
|
|
||||||
#: audits/models.py:256
|
#: audits/models.py:256
|
||||||
|
@ -6812,7 +6812,7 @@ msgid "Can download session replay"
|
||||||
msgstr "可以下载会话录像"
|
msgstr "可以下载会话录像"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:35
|
#: terminal/models/session/session.py:35
|
||||||
msgid "Account id"
|
msgid "Account ID"
|
||||||
msgstr "账号 ID"
|
msgstr "账号 ID"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
|
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
|
||||||
|
|
|
@ -58,19 +58,19 @@
|
||||||
"AddAssetToThisPermission": "Add Assets",
|
"AddAssetToThisPermission": "Add Assets",
|
||||||
"AddInDetailText": "After successful creation or update, add to the details",
|
"AddInDetailText": "After successful creation or update, add to the details",
|
||||||
"AddNode": "Add Node",
|
"AddNode": "Add Node",
|
||||||
"AddNodeToThisPermission": "Add Node",
|
"AddNodeToThisPermission": "Add Nodes",
|
||||||
"AddPassKey": "Add Passkey",
|
"AddPassKey": "Add Passkey",
|
||||||
"AddRolePermissions": "Add permissions to the details after successful creation/update",
|
"AddRolePermissions": "Add permissions to the details after successful creation/update",
|
||||||
"AddSuccessMsg": "Add Successful",
|
"AddSuccessMsg": "Add Successful",
|
||||||
"AddUserGroupToThisPermission": "Add User Group",
|
"AddUserGroupToThisPermission": "Add User Groups",
|
||||||
"AddUserToThisPermission": "Add User",
|
"AddUserToThisPermission": "Add Users",
|
||||||
"Address": "Address",
|
"Address": "Address",
|
||||||
"Addressee": "Recipient",
|
"Addressee": "Recipient",
|
||||||
"AdhocDetail": "Command Details",
|
"AdhocDetail": "Command Details",
|
||||||
"AdhocManage": "Command",
|
"AdhocManage": "Command",
|
||||||
"AdhocUpdate": "Update the Command",
|
"AdhocUpdate": "Update the Command",
|
||||||
"Advanced": "Advanced Settings",
|
"Advanced": "Advanced Settings",
|
||||||
"AfterChange": "After Changes",
|
"AfterChange": "After Change",
|
||||||
"AjaxError404": "404 Request Error",
|
"AjaxError404": "404 Request Error",
|
||||||
"AlibabaCloud": "Alibaba Cloud",
|
"AlibabaCloud": "Alibaba Cloud",
|
||||||
"Aliyun": "Alibaba Cloud",
|
"Aliyun": "Alibaba Cloud",
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
"AllUser": "All users",
|
"AllUser": "All users",
|
||||||
"AllowInvalidCert": "Ignore certificate check",
|
"AllowInvalidCert": "Ignore certificate check",
|
||||||
"Announcement": "Announcement",
|
"Announcement": "Announcement",
|
||||||
"AnonymousAccount": "Anonymous account",
|
"AnonymousAccount": "Anonymous accounts",
|
||||||
"AnonymousAccountTip": "Connect to Assets Without Using Username and Password, Only Support Web Type and Custom Type Assets",
|
"AnonymousAccountTip": "Connect to Assets Without Using Username and Password, Only Support Web Type and Custom Type Assets",
|
||||||
"ApiKey": "API Key",
|
"ApiKey": "API Key",
|
||||||
"ApiKeyList": "Authenticate via Api key in the header of each request, which differs from one request to another, offering greater security than Token method. Please consult the documentation for usage.<br>To minimize the risk of leaks, the Secret can only be viewed upon creation, and each user can create up to 10",
|
"ApiKeyList": "Authenticate via Api key in the header of each request, which differs from one request to another, offering greater security than Token method. Please consult the documentation for usage.<br>To minimize the risk of leaks, the Secret can only be viewed upon creation, and each user can create up to 10",
|
||||||
|
@ -350,14 +350,14 @@
|
||||||
"DateExpired": "Expiration Date",
|
"DateExpired": "Expiration Date",
|
||||||
"DateFinished": "Completion Date",
|
"DateFinished": "Completion Date",
|
||||||
"DateJoined": "Creation Date",
|
"DateJoined": "Creation Date",
|
||||||
"DateLast24Hours": "Last Day",
|
"DateLast24Hours": "Last day",
|
||||||
"DateLast3Months": "Quarter of Year",
|
"DateLast3Months": "Last 3 months",
|
||||||
"DateLastHarfYear": "Half of Year",
|
"DateLastHarfYear": "Last 6 months",
|
||||||
"DateLastLogin": "Last Login Date",
|
"DateLastLogin": "Last Login Date",
|
||||||
"DateLastMonth": "Last Month",
|
"DateLastMonth": "Last month",
|
||||||
"DateLastSync": "Last synchronization date",
|
"DateLastSync": "Last synchronization date",
|
||||||
"DateLastWeek": "Last Week",
|
"DateLastWeek": "Last week",
|
||||||
"DateLastYear": "Last Year",
|
"DateLastYear": "Last year",
|
||||||
"DatePasswordLastUpdated": "Last Password Update Date",
|
"DatePasswordLastUpdated": "Last Password Update Date",
|
||||||
"DateStart": "Start Date",
|
"DateStart": "Start Date",
|
||||||
"DateSync": "Sync Date",
|
"DateSync": "Sync Date",
|
||||||
|
@ -573,7 +573,7 @@
|
||||||
"IsAlwaysUpdate": "Keeping Assets Up to Date",
|
"IsAlwaysUpdate": "Keeping Assets Up to Date",
|
||||||
"IsAlwaysUpdateHelpTip": "Whether to synchronize and update asset information, including hostname, IP, platform, domain, node, etc. each time a synchronization task is performed",
|
"IsAlwaysUpdateHelpTip": "Whether to synchronize and update asset information, including hostname, IP, platform, domain, node, etc. each time a synchronization task is performed",
|
||||||
"IsFinished": "Is It Done",
|
"IsFinished": "Is It Done",
|
||||||
"IsLocked": "Suspend?",
|
"IsLocked": "Suspend",
|
||||||
"IsSuccess": "Success",
|
"IsSuccess": "Success",
|
||||||
"IsSyncAccountHelpText": "Upon Collection Completion, the Collected Account Will Be Synced to Asset",
|
"IsSyncAccountHelpText": "Upon Collection Completion, the Collected Account Will Be Synced to Asset",
|
||||||
"IsSyncAccountLabel": "Sync to Assets",
|
"IsSyncAccountLabel": "Sync to Assets",
|
||||||
|
@ -648,7 +648,7 @@
|
||||||
"MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication) <br/> Personal information such as email, mobile number, and WeChat are only used for user authentication and platform internal message notifications.",
|
"MFAOfUserFirstLoginUserGuidePage": "In order to protect your and the company's security, please carefully safeguard important sensitive information such as your account, password, and key (for example, set a complex password, and enable multi-factor authentication) <br/> Personal information such as email, mobile number, and WeChat are only used for user authentication and platform internal message notifications.",
|
||||||
"MailRecipient": "Email Recipient",
|
"MailRecipient": "Email Recipient",
|
||||||
"MailSend": "Sending",
|
"MailSend": "Sending",
|
||||||
"ManualAccount": "Manual account",
|
"ManualAccount": "Manual accounts",
|
||||||
"ManualAccountTip": "Manual input of Username/Password upon Login",
|
"ManualAccountTip": "Manual input of Username/Password upon Login",
|
||||||
"ManualExecute": "Manual execution",
|
"ManualExecute": "Manual execution",
|
||||||
"ManyChoose": "Select Multiple",
|
"ManyChoose": "Select Multiple",
|
||||||
|
@ -776,7 +776,7 @@
|
||||||
"Pause": "Pause",
|
"Pause": "Pause",
|
||||||
"PauseTaskSendSuccessMsg": "Task Pausing Issued, Please Refresh and Check Later",
|
"PauseTaskSendSuccessMsg": "Task Pausing Issued, Please Refresh and Check Later",
|
||||||
"Pending": "Pending",
|
"Pending": "Pending",
|
||||||
"PermAccount": "Authorized Account",
|
"PermAccount": "Authorized Accounts",
|
||||||
"PermUserList": "Authorized Users",
|
"PermUserList": "Authorized Users",
|
||||||
"PermissionCompany": "Authorized Companies",
|
"PermissionCompany": "Authorized Companies",
|
||||||
"PermissionName": "Authorization Rule Name",
|
"PermissionName": "Authorization Rule Name",
|
||||||
|
@ -945,7 +945,7 @@
|
||||||
"SSHPort": "SSH Port",
|
"SSHPort": "SSH Port",
|
||||||
"SSHSecretKey": "SSH Key",
|
"SSHSecretKey": "SSH Key",
|
||||||
"SafeCommand": "Secure Command",
|
"SafeCommand": "Secure Command",
|
||||||
"SameAccount": "Same account",
|
"SameAccount": "Same accounts",
|
||||||
"SameAccountTip": "Accounts with the Same Username as Authorized Users",
|
"SameAccountTip": "Accounts with the Same Username as Authorized Users",
|
||||||
"SameTypeAccountTip": "An account with the same username and key type already exists",
|
"SameTypeAccountTip": "An account with the same username and key type already exists",
|
||||||
"Saturday": "Sat",
|
"Saturday": "Sat",
|
||||||
|
@ -1229,7 +1229,7 @@
|
||||||
"UsernamePlaceholder": "Please Enter Username",
|
"UsernamePlaceholder": "Please Enter Username",
|
||||||
"Users": "User",
|
"Users": "User",
|
||||||
"UsersAmount": "User",
|
"UsersAmount": "User",
|
||||||
"UsersAndUserGroups": "User/User Group",
|
"UsersAndUserGroups": "Users/User Groups",
|
||||||
"UsersTotal": "Total accounts",
|
"UsersTotal": "Total accounts",
|
||||||
"Valid": "Valid",
|
"Valid": "Valid",
|
||||||
"Variable": "Variable",
|
"Variable": "Variable",
|
||||||
|
|
|
@ -2583,7 +2583,7 @@ msgstr "登錄日期"
|
||||||
|
|
||||||
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
#: audits/models.py:212 audits/models.py:266 audits/serializers.py:70
|
||||||
#: audits/serializers.py:184
|
#: audits/serializers.py:184
|
||||||
msgid "Authentication backend"
|
msgid "Auth backend"
|
||||||
msgstr "認證方式"
|
msgstr "認證方式"
|
||||||
|
|
||||||
#: audits/models.py:256
|
#: audits/models.py:256
|
||||||
|
@ -6852,7 +6852,7 @@ msgid "Can download session replay"
|
||||||
msgstr "可以下載會話錄影"
|
msgstr "可以下載會話錄影"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:35
|
#: terminal/models/session/session.py:35
|
||||||
msgid "Account id"
|
msgid "Account ID"
|
||||||
msgstr "帳號 ID"
|
msgstr "帳號 ID"
|
||||||
|
|
||||||
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
|
#: terminal/models/session/session.py:37 terminal/models/session/sharing.py:118
|
||||||
|
|
|
@ -32,7 +32,7 @@ class Session(OrgModelMixin):
|
||||||
asset = models.CharField(max_length=128, verbose_name=_("Asset"), db_index=True)
|
asset = models.CharField(max_length=128, verbose_name=_("Asset"), db_index=True)
|
||||||
asset_id = models.CharField(blank=True, default='', max_length=36, db_index=True)
|
asset_id = models.CharField(blank=True, default='', max_length=36, db_index=True)
|
||||||
account = models.CharField(max_length=128, verbose_name=_("Account"), db_index=True)
|
account = models.CharField(max_length=128, verbose_name=_("Account"), db_index=True)
|
||||||
account_id = models.CharField(max_length=128, verbose_name=_("Account id"), db_index=True)
|
account_id = models.CharField(max_length=128, verbose_name=_("Account ID"), db_index=True)
|
||||||
protocol = models.CharField(default='ssh', max_length=16, db_index=True)
|
protocol = models.CharField(default='ssh', max_length=16, db_index=True)
|
||||||
login_from = models.CharField(max_length=2, choices=LOGIN_FROM.choices, default="ST", verbose_name=_("Login from"))
|
login_from = models.CharField(max_length=2, choices=LOGIN_FROM.choices, default="ST", verbose_name=_("Login from"))
|
||||||
type = models.CharField(max_length=16, default='normal', db_index=True)
|
type = models.CharField(max_length=16, default='normal', db_index=True)
|
||||||
|
|
|
@ -8,7 +8,6 @@ from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('users', '0043_remove_user_secret_key_preference'),
|
('users', '0043_remove_user_secret_key_preference'),
|
||||||
]
|
]
|
||||||
|
@ -22,11 +21,14 @@ class Migration(migrations.Migration):
|
||||||
('key', models.CharField(max_length=128, verbose_name='Session key')),
|
('key', models.CharField(max_length=128, verbose_name='Session key')),
|
||||||
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
|
||||||
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
|
||||||
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2, verbose_name='Login type')),
|
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal'), ('U', 'Unknown')], max_length=2,
|
||||||
('backend', models.CharField(default='', max_length=32, verbose_name='Authentication backend')),
|
verbose_name='Login type')),
|
||||||
|
('backend', models.CharField(default='', max_length=32, verbose_name='Auth backend')),
|
||||||
('date_created', models.DateTimeField(blank=True, null=True, verbose_name='Date created')),
|
('date_created', models.DateTimeField(blank=True, null=True, verbose_name='Date created')),
|
||||||
('date_expired', models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Date expired')),
|
('date_expired',
|
||||||
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sessions', to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
models.DateTimeField(blank=True, db_index=True, null=True, verbose_name='Date expired')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sessions',
|
||||||
|
to=settings.AUTH_USER_MODEL, verbose_name='User')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'verbose_name': 'User session',
|
'verbose_name': 'User session',
|
||||||
|
|
Loading…
Reference in New Issue