在内容管理系统后台去管理,更新script_function_group的description改为:
剧本功能组

结果出错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | 127.0 . 0.1 - - [ 27 / Jul / 2018 16 : 41 : 24 ] "PUT /api/v1/function_groups/4/ HTTP/1.1" 500 - Traceback (most recent call last): File "/usr/local/lib/python3.6/site-packages/django/contrib/staticfiles/handlers.py" , line 66 , in __call__ return self .application(environ, start_response) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/wsgi.py" , line 146 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" , line 81 , in get_response response = self ._middleware_chain(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/utils/deprecation.py" , line 95 , in __call__ response = self .get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 37 , in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 87 , in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 122 , in handle_uncaught_exception return debug.technical_500_response(request, * exc_info) File "/usr/local/lib/python3.6/site-packages/django_extensions/management/technical_response.py" , line 6 , in null_technical_500_response six.reraise(exc_type, exc_value, tb) File "/Users/crifan/Library/Python/3.6/lib/python/site-packages/six.py" , line 693 , in reraise raise value File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" , line 35 , in inner response = get_response(request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" , line 128 , in _get_response response = self .process_exception_by_middleware(e, request) File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" , line 126 , in _get_response response = wrapped_callback(request, * callback_args, * * callback_kwargs) File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py" , line 54 , in wrapped_view return view_func( * args, * * kwargs) File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py" , line 103 , in view return self .dispatch(request, * args, * * kwargs) File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" , line 483 , in dispatch response = self .handle_exception(exc) File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" , line 443 , in handle_exception self .raise_uncaught_exception(exc) File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" , line 480 , in dispatch response = handler(request, * args, * * kwargs) File "/Users/crifan/dev/dev_root/company/xxx/projects/xxx/server/xxx/apps/user/views.py" , line 204 , in update function_group.update_builtin_group_and_permission(name, function) File "/Users/crifan/dev/dev_root/company/xxx/projects/xxx/server/xxx/apps/user/models.py" , line 122 , in update_builtin_group_and_permission group = Group.objects.get(name = self .name) File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py" , line 82 , in manager_method return getattr ( self .get_queryset(), name)( * args, * * kwargs) File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py" , line 403 , in get self .model._meta.object_name django.contrib.auth.models.DoesNotExist: Group matching query does not exist. |

但是去更新另外一个:

就是可以的:
1 | 127.0.0.1 - - [27/Jul/2018 16:41:38] "PUT /api/v1/function_groups/3/ HTTP/1.1" 200 - |

需要去搞清楚什么情况。
注:之前大概听说,之前同事是按照,分组的时候,竟然是根据group的name去定义功能和逻辑的:
script的组:名字中必须包含script
admin的组:名字中必须包含admin
估计和这个有关。
所以去搞清楚,并且修改掉这么诡异的逻辑。
找到错误代码是:
1 2 3 4 | File "/Users/crifan/dev/dev_root/company/xxx/projects/xxx/server/xxx/apps/user/views.py" , line 204, in update function_group.update_builtin_group_and_permission(name, function ) File "/Users/crifan/dev/dev_root/company/xxx/projects/xxx/server/xxx/apps/user/models.py" , line 122, in update_builtin_group_and_permission group = Group.objects.get(name=self.name) |
去看看


然后发现是:
之前通过管理页面中:

修改过一次,结果系统异常了,所以后来就去数据库中恢复之前的值,但是漏了:
auth_group中的id为3的

所以改为之前的:
script_function_group

然后再去试试:

就可以了:
1 | 127.0.0.1 - - [27/Jul/2018 17:19:44] "PUT /api/v1/function_groups/4/ HTTP/1.1" 200 - |
但是和明显:
之前根据group的name去强制定义和限制用户新增group时名字要包含某个字符串的做法,还是没有完全清理完毕。
好像也没法完全清理旧有的逻辑:内部逻辑关系太复杂,而原先逻辑太混乱。
转载请注明:在路上 » 【已解决】内容管理系统更新脚本用户组的描述出错