mirror of https://github.com/jumpserver/jumpserver
[fix]: 兼容django 3 (#5038)
* chore(django): 修改版本依赖 * [fix]: 兼容django 3 * fix(merge): 去掉不用的JSONField * fix(requirements): 修改加密库的版本 Co-authored-by: ibuler <ibuler@qq.com>pull/5050/head
parent
7fa94008c9
commit
6d39a51c36
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.1 on 2020-11-19 03:10
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('applications', '0006_application'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='application',
|
||||||
|
name='attrs',
|
||||||
|
field=models.JSONField(),
|
||||||
|
),
|
||||||
|
]
|
|
@ -2,7 +2,6 @@ from itertools import chain
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from django_mysql.models import JSONField, QuerySet
|
|
||||||
|
|
||||||
from orgs.mixins.models import OrgModelMixin
|
from orgs.mixins.models import OrgModelMixin
|
||||||
from common.mixins import CommonModelMixin
|
from common.mixins import CommonModelMixin
|
||||||
|
@ -123,7 +122,7 @@ class Application(CommonModelMixin, OrgModelMixin):
|
||||||
domain = models.ForeignKey('assets.Domain', null=True, blank=True, related_name='applications', verbose_name=_("Domain"), on_delete=models.SET_NULL)
|
domain = models.ForeignKey('assets.Domain', null=True, blank=True, related_name='applications', verbose_name=_("Domain"), on_delete=models.SET_NULL)
|
||||||
category = models.CharField(max_length=16, choices=Category.choices, verbose_name=_('Category'))
|
category = models.CharField(max_length=16, choices=Category.choices, verbose_name=_('Category'))
|
||||||
type = models.CharField(max_length=16, choices=Category.get_all_type_choices(), verbose_name=_('Type'))
|
type = models.CharField(max_length=16, choices=Category.get_all_type_choices(), verbose_name=_('Type'))
|
||||||
attrs = JSONField()
|
attrs = models.JSONField()
|
||||||
comment = models.TextField(
|
comment = models.TextField(
|
||||||
max_length=128, default='', blank=True, verbose_name=_('Comment')
|
max_length=128, default='', blank=True, verbose_name=_('Comment')
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,7 +6,7 @@ import time
|
||||||
|
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.utils.six import text_type
|
from six import text_type
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.contrib.auth.backends import ModelBackend
|
from django.contrib.auth.backends import ModelBackend
|
||||||
from rest_framework import HTTP_HEADER_ENCODING
|
from rest_framework import HTTP_HEADER_ENCODING
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils import six
|
import six
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from ..utils import signer
|
from ..utils import signer
|
||||||
|
|
|
@ -31,7 +31,7 @@ class JsonMixin:
|
||||||
def json_encode(data):
|
def json_encode(data):
|
||||||
return json.dumps(data)
|
return json.dumps(data)
|
||||||
|
|
||||||
def from_db_value(self, value, expression, connection, context):
|
def from_db_value(self, value, expression, connection, context=None):
|
||||||
if value is None:
|
if value is None:
|
||||||
return value
|
return value
|
||||||
return self.json_decode(value)
|
return self.json_decode(value)
|
||||||
|
@ -54,7 +54,7 @@ class JsonMixin:
|
||||||
class JsonTypeMixin(JsonMixin):
|
class JsonTypeMixin(JsonMixin):
|
||||||
tp = dict
|
tp = dict
|
||||||
|
|
||||||
def from_db_value(self, value, expression, connection, context):
|
def from_db_value(self, value, expression, connection, context=None):
|
||||||
value = super().from_db_value(value, expression, connection, context)
|
value = super().from_db_value(value, expression, connection, context)
|
||||||
if not isinstance(value, self.tp):
|
if not isinstance(value, self.tp):
|
||||||
value = self.tp()
|
value = self.tp()
|
||||||
|
@ -116,7 +116,7 @@ class EncryptMixin:
|
||||||
def decrypt_from_signer(self, value):
|
def decrypt_from_signer(self, value):
|
||||||
return signer.unsign(value) or ''
|
return signer.unsign(value) or ''
|
||||||
|
|
||||||
def from_db_value(self, value, expression, connection, context):
|
def from_db_value(self, value, expression, connection, context=None):
|
||||||
if value is None:
|
if value is None:
|
||||||
return value
|
return value
|
||||||
value = force_text(value)
|
value = force_text(value)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from django.utils import six
|
import six
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
|
|
@ -16,7 +16,7 @@ import json
|
||||||
import yaml
|
import yaml
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
from django.urls import reverse_lazy
|
from django.urls import reverse_lazy
|
||||||
from django.contrib.staticfiles.templatetags.staticfiles import static
|
from django.templatetags.static import static
|
||||||
from urllib.parse import urljoin, urlparse
|
from urllib.parse import urljoin, urlparse
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
#
|
#
|
||||||
from django.contrib.staticfiles.templatetags.staticfiles import static
|
from django.templatetags.static import static
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.translation import gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ REST_FRAMEWORK = {
|
||||||
),
|
),
|
||||||
'DEFAULT_RENDERER_CLASSES': (
|
'DEFAULT_RENDERER_CLASSES': (
|
||||||
'rest_framework.renderers.JSONRenderer',
|
'rest_framework.renderers.JSONRenderer',
|
||||||
'rest_framework.renderers.BrowsableAPIRenderer',
|
# 'rest_framework.renderers.BrowsableAPIRenderer',
|
||||||
'common.drf.renders.JMSCSVRender',
|
'common.drf.renders.JMSCSVRender',
|
||||||
),
|
),
|
||||||
'DEFAULT_PARSER_CLASSES': (
|
'DEFAULT_PARSER_CLASSES': (
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.1 on 2020-11-18 10:01
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('users', '0030_auto_20200819_2041'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='user',
|
||||||
|
name='first_name',
|
||||||
|
field=models.CharField(blank=True, max_length=150, verbose_name='first name'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -12,20 +12,20 @@ chardet==3.0.4
|
||||||
configparser==3.5.0
|
configparser==3.5.0
|
||||||
coreapi==2.3.3
|
coreapi==2.3.3
|
||||||
coreschema==0.0.4
|
coreschema==0.0.4
|
||||||
cryptography==2.8
|
cryptography==3.2
|
||||||
decorator==4.1.2
|
decorator==4.1.2
|
||||||
Django==2.2.13
|
Django==3.1
|
||||||
django-auth-ldap==1.7.0
|
django-auth-ldap==2.2.0
|
||||||
django-bootstrap3==9.1.0
|
django-bootstrap3==14.2.0
|
||||||
django-celery-beat==2.0
|
django-celery-beat==2.0
|
||||||
django-filter==2.0.0
|
django-filter==2.4.0
|
||||||
django-formtools==2.1
|
django-formtools==2.2
|
||||||
django-ranged-response==0.2.0
|
django-ranged-response==0.2.0
|
||||||
django-redis-cache==2.1.1
|
django-redis-cache==2.1.1
|
||||||
django-rest-swagger==2.1.2
|
django-rest-swagger==2.2.0
|
||||||
django-simple-captcha==0.5.6
|
django-simple-captcha==0.5.13
|
||||||
django-timezone-field==4.0
|
django-timezone-field==4.0
|
||||||
djangorestframework==3.9.4
|
djangorestframework==3.12.2
|
||||||
djangorestframework-bulk==0.2.1
|
djangorestframework-bulk==0.2.1
|
||||||
docutils==0.14
|
docutils==0.14
|
||||||
ecdsa==0.13.3
|
ecdsa==0.13.3
|
||||||
|
@ -44,7 +44,7 @@ jmespath==0.9.3
|
||||||
kombu==4.6.8
|
kombu==4.6.8
|
||||||
ldap3==2.4
|
ldap3==2.4
|
||||||
MarkupSafe==1.1.1
|
MarkupSafe==1.1.1
|
||||||
mysqlclient==1.3.14
|
mysqlclient==2.0.1
|
||||||
olefile==0.44
|
olefile==0.44
|
||||||
openapi-codec==1.3.2
|
openapi-codec==1.3.2
|
||||||
paramiko==2.4.2
|
paramiko==2.4.2
|
||||||
|
@ -69,7 +69,7 @@ sshpubkeys==3.1.0
|
||||||
uritemplate==3.0.0
|
uritemplate==3.0.0
|
||||||
urllib3==1.25.2
|
urllib3==1.25.2
|
||||||
vine==1.3.0
|
vine==1.3.0
|
||||||
drf-yasg==1.9.1
|
drf-yasg==1.20.0
|
||||||
Werkzeug==0.15.3
|
Werkzeug==0.15.3
|
||||||
drf-nested-routers==0.91
|
drf-nested-routers==0.91
|
||||||
aliyun-python-sdk-core-v3==2.9.1
|
aliyun-python-sdk-core-v3==2.9.1
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
gcc krb5-devel libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel sshpass openldap-devel mariadb-devel mysql-devel mysql libffi-devel openssh-clients telnet openldap-clients
|
gcc krb5-devel libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel sshpass openldap-devel mariadb-devel mysql-community-devel mysql libffi-devel openssh-clients telnet openldap-clients
|
||||||
|
|
Loading…
Reference in New Issue