Skip to content

Commit 92ea71d

Browse files
authored
Update README.md
1 parent 8279cd4 commit 92ea71d

File tree

1 file changed

+4
-205
lines changed

1 file changed

+4
-205
lines changed

README.md

Lines changed: 4 additions & 205 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)