@@ -15,15 +15,15 @@ TyAdmin: 只需要花五分钟阅读README即可快速上手,无额外文档
1515
1616📨 互动交流反馈QQ群: 304094780
1717
18- [ 快速上手] (#📦 快速上手)
18+ [ 快速上手] ( #快速上手 )
1919
2020# ✨ 特性
2121
2222- 自动生成前后端管理后台,页面接口神奇全自动对接。登录验证,修改密码,Dashboard数据统计。
2323- 一次拥有 ** 增删改查,筛选,搜索,数据全量导出,选择导出**
2424- ** 外键字段,多对多字段,富文本,文件,图片,django自带权限系统**
2525
26- 只需要设计好Model,在settings中配置需要生成哪些model,运行命令: [ 快速上手] (#📦 快速上手)
26+ 只需要设计好Model,在settings中配置需要生成哪些model,运行命令: [ 快速上手] ( #快速上手 )
2727
2828> 后端生成一个django app到项目目录, 只需注册一下, 无需再写一行代码! 代码归你掌控,无阻二次开发!
2929> 前端生成一个Ant Design Pro V4项目,只需启动一次,无需再写一行代码! 代码归你掌控,无阻二次开发!
@@ -60,7 +60,7 @@ TyAdmin: 只需要花五分钟阅读README即可快速上手,无额外文档
6060
6161![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010192630.png )
6262
63- # 📦 快速上手
63+ # 快速上手
6464
6565> 已有项目可从第二步开始,注意修改GEN_APPS 变量为自己需要生成的app列表
6666> 如有问题,可对比demos下tyadmin_demo_finish项目找自己的不同,以及查看[ QA环节] ( #QA环节 )
@@ -148,205 +148,4 @@ path('api/xadmin/v1/', include('tyadmin_api.urls')),
148148## 6. 运行项目
149149
150150```
151- python manage.py makemigrations
152- python manage.py migrate
153- python manage.py createsuperuser # 创建一个可以登入后台的用户
154- python manage.py runserver # 默认运行在8000端口
155- ```
156-
157- 访问http://127.0.0.1:8000/xadmin/ 输入刚才创建的用户名密码登录
158-
159- 至此大功告成!
160-
161- > 如果没有成功看到页面,请查看QA部分
162-
163- # QA环节
164-
165- ## 0. ` TemplateDoesNotExist at /xadmin/ TyAdmin/index.html `
166-
167- settings.py 中配置templates 路径
168-
169- ``` diff
170- TEMPLATES = [
171- {
172- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
173- - 'DIRS': [],
174- + 'DIRS': [os.path.join(BASE_DIR, 'templates')],
175- ```
176- ## 1. 卡在loading页面,一直无法登陆
177-
178- settings.py 中配置static 路径
179-
180- ```
181- if DEBUG:
182- STATICFILES_DIRS = [
183- os.path.join(BASE_DIR, "static"),
184- ]
185- else:
186- STATIC_ROOT = os.path.join(BASE_DIR, 'static')
187- ```
188-
189- ## 2. 图片没有正常显示
190-
191- urls.py
192-
193- ```
194- from django.views.static import serve
195-
196- urlpatterns = [
197- re_path('media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
198- ]
199- ```
200-
201- ## 3. 当项目新增了model,我该如何为新model生成前端页面+后端接口
202-
203- ```
204- +TY_ADMIN_CONFIG = {
205- + 'GEN_APPS': ['demo','new_app']
206- +}
207- ```
208- 如上GEN_APPS 中添加新app的name,然后运行下面命令
209-
210- ```
211- python manage.py gen_all && cd tyadmin && npm run build
212- ```
213-
214- ## 4. 如何运行生成的前端独立项目
215-
216- ```
217- cd tyadmin
218- npm install
219- npm run start:dev # 默认会运行在8001端口
220- ```
221-
222- 请确认django运行在8000端口,访问 http://127.0.0.1:8001/xadmin/
223-
224- # 🤝 贡献者名单:
225-
226- [ longyn] ( https://github.com/longyn )
227-
228- # 🤟 打赏
229-
230- 很高兴我的项目代码或许对你有帮助,请我吃包辣条或喝瓶可乐吧!
231-
232- 微信打赏:
233-
234- ![ mark] ( http://myphoto.mtianyan.cn/blog/180302/i52eHgilfD.png?imageslim )
235-
236- # 🔑 License
237-
238- [ MIT] ( https://github.com/go-admin-team/go-admin/blob/master/LICENSE.md )
239-
240- Copyright (c) 2020 mtianyan
241-
242-
243- # 附录
244-
245- ## model->前端对应关系
246-
247- | 字段类型 | 前端展示 |
248- | ---- | ---- |
249- | ForeignKey | 单选 |
250- | ManyToManyField | 多选 & 多彩标签展示 |
251- | richTextField | 富文本展示 |
252- | CharField or IntegerField(with choices) | 多选 |
253- | CharField or IntegerField | 输入框 |
254- | ImageField | 带预览上传,可选头像,图片列表展示 |
255- | FileField | 文件上传 |
256- | TextField | TextArea框 |
257- | BooleanField | Switch选择|
258- | IntegerField | 数字input|
259- | DateField| Date选择器|
260- | DateTimeField| DateTime选择器|
261-
262- ### ForeignKey自动生成下拉单选菜单, ManyToManyField自动生成下拉多选菜单或穿梭框
263-
264- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201202214922.png )
265-
266- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201202214936.png )
267-
268- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201202214957.png )
269-
270- ### richTextField 自动生成富文本
271-
272- ```
273- detail = richTextField(verbose_name="课程详情")
274- ```
275-
276- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010193352.png )
277-
278- ### CharField和IntegerField choices 自动生成表单前端下拉选择框。
279-
280- ``` python
281- GENDER_CHOICES = (
282- (" male" , " 男" ),
283- (" female" , " 女" )
284- )
285- gender = CharField(verbose_name = " 性别" ,choices = GENDER_CHOICES )
286- ```
287-
288- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010190635.png )
289-
290- ### ImageField 自动生成带预览的表单上传功能,列表页可选两种展示方式。
291-
292- ``` python
293- avatar = ImageField(verbose_name = " 头像" ) # 变量名为avatar或logo的会自动为头像样式
294- image = ImageField(verbose_name = " 封面图" )
295- ```
296-
297- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010191641.png )
298-
299- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010191917.png )
300-
301- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010191843.png )
302-
303- ### FileField 字段生成文件上传功能。
304-
305- ```
306- download = FileField(verbose_name="资源文件")
307- ```
308-
309- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010193041.png )
310-
311- ### TextField 自动生成前端TextArea 框
312-
313- ``` python
314- desc = TextField(verbose_name = " 课程描述" )
315- ```
316-
317- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010192813.png )
318-
319- ### BooleanField 自动前端 Boolean 单选
320-
321- ``` python
322- is_banner = BooleanField(verbose_name = " 是否轮播" )
323- ```
324-
325- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010193001.png )
326-
327- ### IntegerField 自动前端 Int 输入框
328- ```
329- learn_times = IntegerField(verbose_name="学习时长(分钟数)")
330- ```
331- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010193445.png )
332-
333- ### DateField 自动前端 Date选择框
334-
335- ```
336- birthday = DateField(verbose_name="生日")
337- ```
338- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010193614.png )
339-
340- ### DateTimeField 自动表单 DateTime 选择框,时间范围筛选器。
341-
342- ```
343- last_login = DateTimeField(verbose_name="上次登录")
344- ```
345-
346- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010193852.png )
347-
348- > 注意设置了default,auto_now的不会出现在表单
349-
350- ![ ] ( http://cdn.pic.mtianyan.cn/blog_img/20201010195116.png )
351-
352-
151+ python manage.py
0 commit comments