From 1477144bfdae95352911941d1b9954f7a281c3b4 Mon Sep 17 00:00:00 2001 From: zghmvp Date: Mon, 11 Apr 2022 16:19:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=89=93=E5=BC=80'=E7=88=B6=E7=BA=A7?= =?UTF-8?q?=E8=8F=9C=E5=8D=95'=E7=BC=93=E5=AD=98=E5=8A=9F=E8=83=BD'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/views/system/menu/crud.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/views/system/menu/crud.js b/web/src/views/system/menu/crud.js index 631976d..14c30f2 100644 --- a/web/src/views/system/menu/crud.js +++ b/web/src/views/system/menu/crud.js @@ -130,7 +130,7 @@ export const crudOptions = (vm) => { type: 'cascader', dict: { url: menuPrefix + '?limit=999&status=1&is_catalog=1', - cache: false, + // cache: false, isTree: true, value: 'id', // 数据字典中value字段的属性名 label: 'name', // 数据字典中label字段的属性名 From 75174311c806c3c773670db81ecae69342b30c86 Mon Sep 17 00:00:00 2001 From: zghmvp Date: Mon, 11 Apr 2022 16:20:34 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0MySQL=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/conf/env.example.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/conf/env.example.py b/backend/conf/env.example.py index c19f567..0ead1e8 100644 --- a/backend/conf/env.example.py +++ b/backend/conf/env.example.py @@ -7,8 +7,11 @@ from application.settings import BASE_DIR # ================================================= # # # 数据库 ENGINE ,默认演示使用 sqlite3 数据库,正式环境建议使用 mysql 数据库 +# Mysql 设置 +# DATABASE_ENGINE = "django.db.backends.mysql" +# DATABASE_NAME = "django-vue-admin" +# sqlite3 设置 DATABASE_ENGINE = "django.db.backends.sqlite3" -# 数据库名 DATABASE_NAME = os.path.join(BASE_DIR, 'db.sqlite3') # 数据库地址 改为自己数据库地址 DATABASE_HOST = "127.0.0.1" From 4abe392313154e0fe0fedeaccf9dbf3432ec0209 Mon Sep 17 00:00:00 2001 From: zghmvp Date: Mon, 11 Apr 2022 16:21:15 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E7=A0=81=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/system/views/login.py | 28 ++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/backend/dvadmin/system/views/login.py b/backend/dvadmin/system/views/login.py index 41f0a88..81c4ff1 100644 --- a/backend/dvadmin/system/views/login.py +++ b/backend/dvadmin/system/views/login.py @@ -11,6 +11,7 @@ import hashlib from datetime import datetime, timedelta from captcha.views import CaptchaStore, captcha_image +from django.conf import settings from django.contrib import auth from django.contrib.auth import login from django.shortcuts import redirect @@ -56,7 +57,7 @@ class LoginSerializer(TokenObtainPairSerializer): 登录的序列化器: 重写djangorestframework-simplejwt的序列化器 """ - captcha = serializers.CharField(max_length=6) + captcha = serializers.CharField(max_length=6, required=False, allow_null=True) class Meta: model = Users @@ -68,18 +69,19 @@ class LoginSerializer(TokenObtainPairSerializer): } def validate_captcha(self, captcha): - self.image_code = CaptchaStore.objects.filter( - id=self.initial_data['captchaKey']).first() - five_minute_ago = datetime.now() - timedelta(hours=0, minutes=5, seconds=0) - if self.image_code and five_minute_ago > self.image_code.expiration: - self.image_code and self.image_code.delete() - raise CustomValidationError('验证码过期') - else: - if self.image_code and (self.image_code.response == captcha or self.image_code.challenge == captcha): - self.image_code and self.image_code.delete() - else: - self.image_code and self.image_code.delete() - raise CustomValidationError("图片验证码错误") + if settings.CAPTCHA_STATE is True: + self.image_code = CaptchaStore.objects.filter( + id=self.initial_data['captchaKey']).first() + five_minute_ago = datetime.now() - timedelta(hours=0, minutes=5, seconds=0) + if self.image_code and five_minute_ago > self.image_code.expiration: + self.image_code and self.image_code.delete() + raise CustomValidationError('验证码过期') + else: + if self.image_code and (self.image_code.response == captcha or self.image_code.challenge == captcha): + self.image_code and self.image_code.delete() + else: + self.image_code and self.image_code.delete() + raise CustomValidationError("图片验证码错误") def validate(self, attrs): data = super().validate(attrs)