GithubHelp home page GithubHelp logo

mtianyan / django-react-tyadmin Goto Github PK

View Code? Open in Web Editor NEW
844.0 18.0 194.0 42.13 MB

支持Python3.9,Django4! 类似 xadmin 的基于Model 快速生成前后台管理增删改查,筛选,搜索的后台管理自动化工具。Antd 界面好看现代化!前后端分离!无损二次开发!由Django Restful Framework 和 Ant Design Pro V4 驱动

Home Page: https://tyadmin.funpython.cn/xadmin

License: MIT License

JavaScript 38.35% TypeScript 5.35% Less 5.23% Python 49.67% EJS 1.41%
django antdesign antd-design-pro admin xadmin python3 react nocode generator django-rest-framework

django-react-tyadmin's Introduction

欢迎来到我的主页 👋

  • 🏢 全干工程师一枚,前端React,后端Django,爬虫也做!
  • 🚀 日常主要技术: Python Node
  • 💻 工作时技术栈: Django DjangoRestfulFramework React ANT DESIGN ANT DESIGN PRO 4 Mysql Spider Related

django-react-tyadmin's People

Contributors

longyn avatar mtianyan avatar paulzhn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-react-tyadmin's Issues

build 命令执行报错

build 命令执行报错

Current Behavior

When running yarn build, the build process fails with the following error:

  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/webpack/lib/NormalModule.js:417:16)
    at /Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/webpack/lib/NormalModule.js:452:10
    at /Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/webpack/lib/NormalModule.js:323:13
    at /Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /Users/tingzhanghuang/Documents/self-effort/basic_service_platform/tyadmin/node_modules/babel-loader/lib/index.js:59:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Expected Behavior

The build process should complete successfully without any errors.

Steps to Reproduce

  1. Run yarn build command.

Environment

  • Operating System: MacOS
  • Node Version: node v16.20.2
  • Yarn Version: v1.22.19

编码问题

老哥你好. windows下默认的编码为gbk, 生成的页面文件中文 ,显示乱码. 我看了一下是没有加编码导致的,这个地方是可以优化一下的.

关于Form布局的问题

我也请教过antd pro的chenshuai,他回复说antd支持layout,我没明白怎么用,我的问题是你的系统的CreateForm水平布局的,我也挺喜欢。但是我用V5布局显示如下:

image

    <ProForm.Group>
      <ProFormCheckbox name="is_superuser" label="is_superuser" labelAlign="left" />
      <ProFormCheckbox name="is_staff" label="is_staff" labelAlign="left" />
      <ProFormCheckbox name="is_active" label="is_active" labelAlign="left" />
    </ProForm.Group>

我也想实现这个CheckBox左右布局,labelAlign不生效,你肯定是高手,请问该怎么写呢?注意不是所有字段都左右,只有这个需要。

Tyadmin Users 👨🏻‍💻👩🏻‍💻👨🏻‍💻👩🏻‍💻

如果您和您的公司或组织或个人使用了Tyadmin ,非常感谢您的支持,欢迎留下公司或产品名,您的回复将成为维护者、社区用户和观望者的信心来源。

在不泄露信息的前提下,建议把截图晒一晒~
无关回复将会定期删除

推荐回复格式:

  • 产品:
  • 公司或组织:(如果可以)
  • 链接:(如果可以)
  • 截图:(如果可以)
    We appreciate you support if you or your organization is using Tyadmin. You are welcome to leave replies about your product and organization here, which could became the confidence of maintiners, communication and undecided watchers.

Recommended reply format:

  • Product:
  • Company or Organization: (if any)
  • Link: (if any)
  • Screenshot: (if any)

按安装步骤安装报错了

[root@pibygpcp tyadmin_demo_init]# python3 manage.py init_admin
Unknown command: 'init_admin'
Type 'manage.py help' for usage.

新建django2+工程时,根据示例步骤执行python manage.py gen_all出现编码错误

环境

  • Windows 10
  • Python36
  • PowerShell
  • django 2.2

报错

按README步骤自建django工程,执行python manage.py gen_all这一步报编码错误。

> python manage.py gen_all
...
Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\django\core\management\base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\tyadmin_api_cli\management\commands\gen_all.py", line 38, in handle
    gen_all(setting_value, apps_list)
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\tyadmin_api_cli\init_filter_serial_url_view.py", line 18, in gen_all        
    gen_antd_pages(project_name_settings, models_list)
  File "F:\github\Django-Demos\DJ28-tyadmin_api_cli-demo\.venv\lib\site-packages\tyadmin_api_cli\deal_antd_pages.py", line 773, in gen_antd_pages
    content = fr.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8d in position 574: illegal multibyte sequence

相关配置

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'tyadmin_api_cli',
    'order',
]

...

TY_ADMIN_CONFIG = {
    'GEN_APPS': [
        'auth',
        'order',  # 自定义app
    ]
}

作者的脑洞实在有点大

看到这个项目之后,有一种“卧槽这样也行?“的感觉,直接通过model生成一个antd的前端,要做定制开发的话就跟普通前后端分离没有区别,彳亍!

关于权限管理这块

你好,请问你这里面继承的是django自带的权限管理,可是我经过你的前端页面进行操作的时候,并不能有什么作用呀,你的那个permission和group的作用是啥?我发现分不分配权限没啥明显作用呀

为什么我项目跑起来,但是没有侧边栏,显示服务器异常。报"GET /api/xadmin/v1/sys/menu HTTP/1.1" 500 124494 和 dict' object has no attribute 'has_key'

http://127.0.0.1:8000/api/xadmin/v1/sys/menu
3.2.7
AttributeError
'dict' object has no attribute 'has_key'
/home/firefly/anaconda3/envs/tyadmin_api_cli/lib/python3.7/site-packages/demjson.py, line 911, in
/home/firefly/anaconda3/envs/tyadmin_api_cli/bin/python
3.7.11
['/media/firefly/000BD7B8000CDE06/tyadmin_api_cli/demos/tyadmin_demo_finish', '/opt/ros/melodic/lib/python2.7/dist-packages', '/home/firefly/anaconda3/envs/tyadmin_api_cli/lib/python37.zip', '/home/firefly/anaconda3/envs/tyadmin_api_cli/lib/python3.7', '/home/firefly/anaconda3/envs/tyadmin_api_cli/lib/python3.7/lib-dynload', '/home/firefly/anaconda3/envs/tyadmin_api_cli/lib/python3.7/site-packages']

这个项目非常棒!!!修复一个小bug

项目中用到了demjson,demsjon包在python的setuptools 58.0版本以后就不再被python3支持
目前demjson项目特别划分出了一个项目分支demjson3:

https://pypi.org/project/demjson3/

具体参见issue:
dmeranda/demjson#40

改法有两个:

  1. 项目中用到demjson的地方修改为demjson3即可
  2. setuptools降级低于58.0(亲测即便在58.0以前也并不是所有的版本都支持)

以下为报错信息:
Internal Server Error: /api/xadmin/v1/sys/menu
File "C:\Users\xuyic\anaconda3\envs\py36\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
raise exc
File "C:\Users\xuyic\anaconda3\envs\py36\lib\site-packages\rest_framework\views.py", line 506, in dispatch
response = handler(request, *args, **kwargs)
File "C:\Users\xuyic\Downloads\django-antd-tyadmin-master\django-antd-tyadmin-master\demos\tyadmin_demo_init\tyadmin_api\views.py", line 72, in get
content = demjson.decode(content)
File "C:\Users\xuyic\anaconda3\envs\py36\lib\site-packages\demjson.py", line 2039, in decode
j = JSON( strict=strict )
File "C:\Users\xuyic\anaconda3\envs\py36\lib\site-packages\demjson.py", line 911, in init
for c in range(0,256)]
File "C:\Users\xuyic\anaconda3\envs\py36\lib\site-packages\demjson.py", line 911, in
for c in range(0,256)]AttributeError: 'dict' object has no attribute 'has_key'

报错的主要原因是Python3以后删除了has_key()方法,可以把has_key换成in方法解决这个报错,但是也不推荐,因为demjson项目中并不是只有这一点不兼容python3,还有挺多地方,改起来非常麻烦。

项目环境:
python==3.6
django==3.3

望采纳,额外补充一句,感谢作者大大的好项目!救命了!

makemigrations时遇到: ModuleNotFoundError: No module named 'tyadmin_apidjango'

完整的报错如下, 自己定位不到错误了
Traceback (most recent call last):
File "manage.py", line 22, in
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/home/fa/goodsh/envs/lib/python3.8/site-packages/django/core/management/init.py", line 419, in execute_from_command_line
utility.execute()
File "/home/fa/goodsh/envs/lib/python3.8/site-packages/django/core/management/init.py", line 395, in execute
django.setup()
File "/home/fa/goodsh/envs/lib/python3.8/site-packages/django/init.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/fa/goodsh/envs/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/home/fa/goodsh/envs/lib/python3.8/site-packages/django/apps/config.py", line 224, in create
import_module(entry)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 961, in _find_and_load_unlocked
File "", line 219, in _call_with_frames_removed
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 961, in _find_and_load_unlocked
File "", line 219, in _call_with_frames_removed
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tyadmin_apidjango'

菜单路由

image
菜单路由如何和后端对接,动态生成

操作失败了,

python manage.py init_admin && python manage.py gen_all

C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli
******************** 已自动生成urls ********************
C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli
{'auth': ['Permission', 'Group'], 'contenttypes': ['ContentType']}
******************** 已自动生成views ********************
C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
auth Group Permission
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
{'Permission': ['content_type$分割$ContentType'], 'Group': [], 'ContentType': []}
{'Permission': [], 'Group': ['permissions$分割$Permission'], 'ContentType': []}
{'Permission': ['content_type$分割$ContentType'], 'Group': [], 'ContentType': []}
******************** 已自动生成serializers ********************
C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli
******************** 已自动生成filters ********************
C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
auth
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
id
name
content_type
content_type
auth.Permission.content_type
codename
Traceback (most recent call last):
File "manage.py", line 22, in
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\django\core\management_init_.py", line 401, in execute_from_command_line
utility.execute()
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\django\core\management_init_.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\django\core\management\base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\django\core\management\base.py", line 371, in execute
output = self.handle(*args, **options)
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli\management\commands\gen_all.py", line 38, in handle
gen_all(setting_value, apps_list)
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli\init_filter_serial_url_view.py", line 18, in gen_all
gen_antd_pages(project_name_settings, models_list)
File "C:\Users\Administrator\Envs\tyadmin\lib\site-packages\tyadmin_api_cli\deal_antd_pages.py", line 912, in gen_antd_pages
os.mkdir(cur_path)
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\Users\Administrator\Desktop\TyadminDemo/tyadmin/src/pages/AutoGenPage/PermissionList'

已有django项目运行python manage.py gen_all命令时候出错了

H:\Program Files\Python\Lib\site-packages\tyadmin_api_cli
<class 'django.db.models.fields.NOT_PROVIDED'>
Traceback (most recent call last):
File "manage.py", line 15, in
execute_from_command_line(sys.argv)
File "H:\Program Files\Python\lib\site-packages\django\core\management_init_.py", line 381, in execute_from_command_line
utility.execute()
File "H:\Program Files\Python\lib\site-packages\django\core\management_init_.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "H:\Program Files\Python\lib\site-packages\django\core\management\base.py", line 316, in run_from_argv
self.execute(*args, **cmd_options)
File "H:\Program Files\Python\lib\site-packages\django\core\management\base.py", line 353, in execute
output = self.handle(*args, **options)
File "H:\Program Files\Python\lib\site-packages\tyadmin_api_cli\management\commands\gen_all.py", line 24, in handle
gen_all(setting_value)
File "H:\Program Files\Python\lib\site-packages\tyadmin_api_cli\init_filter_serial_url_view.py", line 18, in gen_all
gen_antd_pages(project_name_settings)
File "H:\Program Files\Python\lib\site-packages\tyadmin_api_cli\deal_antd_pages.py", line 65, in gen_antd_pages
one_c = one_c.replace("$模型显示名字$", filed.verbose_name)
TypeError: replace() argument 2 must be str, not proxy

提点小建议

搜到你这个项目和我要设计的项目接近,也是django restful api,本想借鉴复制你的组件,比如只复制一个User管理,我看几乎复制了半个项目了,组件化互相牵扯太多,建议所采用的组件和ant-design-pro接近,比如你用的mtianyan-pro-table,Pro-table有啥满足不了吗?还有excel导出组件,其实django后台就可以设计导出,你引用的组件万一不更新了呢,我的意思要跟主流。我也是才开始学习react相关的东西,感觉都到处封装,搞的人云山雾罩,说是react的优点在于组件化,但不是那么简单。

大佬求助!!在python manage.py init_admin && python manage.py gen_all && cd tyadmin && npm install && npm run build报错

Images and other types of assets omitted.

The bundle size is significantly larger than recommended.
Consider reducing it with code splitting: https://umijs.org/docs/load-on-demand
You can also analyze the project dependencies using ANALYZE=1

sh: 1: npx: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! [email protected] build: umi build && npx cpr ../static/tyadmin/index.html ../templates/TyAdmin/index.html -o
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/firefly/.npm/_logs/2021-09-26T14_01_52_816Z-debug.log

INSTALLED_APPS中注册了但是

File "", line 1006, in _gcd_import
File "", line 983, in _find_and_load
File "", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'tyadmin_api'

'FORCED_COVER': True不生效

再改动原有model字段后,在TY_ADMIN_CONFIG加上FORCED_COVER': True,页面不生效,依旧是原来的字段属性

django-filter 的属性字段有变更,导致filter不起作用,有相同问题的可以参考

自动生成的filter,采用的字段是filter_class 和 filter_fields
但是我的filter不起作用,我看了一下django_filter 发现其属性字段有变更:
https://django-filter.readthedocs.io/en/main/guide/migration.html

View attributes renamed (#867)

Several view-related attributes have been renamed to improve consistency with other parts of the library. The following classes are affected:

DRF ViewSet.filter_class => filterset_class
DRF ViewSet.filter_fields => filterset_fields
DjangoFilterBackend.default_filter_set => filterset_base
DjangoFilterBackend.get_filter_class() => get_filterset_class()
FilterMixin.filter_fields => filterset_fields

权限相关的配置

新建了非超级管理员用户,配置view,add, change 权限后,仍然可以执行删除用户的操作,大佬求解

前端 blank=true 验证错误

我的字段是这样的:
nonce = models.PositiveIntegerField(verbose_name='Nonce', blank=True, null=True)
nonce 允许留空。

在前端编辑后,却提示我不能为空。
图片

富文本卡死

如果外键实例包含大的富文本,点击列表外键的感叹号那整个页面会卡死

安装失败

安装直接没成功。
error in demjson setup command: use_2to3 is invalid.
应该是需要将 setuptools 降级到 57.5.0版本,可是又会引起其他包的依赖错误:
celery 5.2.3 requires setuptools<59.7.0,>=59.1.1, but you have setuptools 57.5.0 which is incompatible.

如果想无代码编辑出一个页面,请问需要学习哪些知识点?

如果想基于此框架无代码编辑出一个页面,具备基本的录入、展示功能,请问需要学习哪些知识点?
我看到 demo 中还可以自建栏目,但我搭建好之后,在 http://127.0.0.1:8000/xadmin 页面下,使用 superadmin 账户找遍了所有角落,都没有找到相应的入口。
http://127.0.0.1:8001/xadmin 端口的页面下,虽然找到了编辑的地方,但编辑后,怎么应用到主页面、怎么录入及展示数据,又是一头雾水。。。麻烦大佬指点。。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.