Skip to content

Commit

Permalink
finish TyAdmin gen Admin
Browse files Browse the repository at this point in the history
  • Loading branch information
mtianyan committed Aug 23, 2020
1 parent 88e49e0 commit 7b08414
Show file tree
Hide file tree
Showing 857 changed files with 56,418 additions and 22,967 deletions.
9 changes: 8 additions & 1 deletion Mxonline3/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
'DjangoUeditor',
'rest_framework', # 添加rest framework,api服务依赖
'django_filters', # 添加过滤器,后台xadmin filter支持,rest framework filter支持
'xadmin_api'
]
# 此处重载是为了使我们的UserProfile生效
AUTH_USER_MODEL = "users.UserProfile"
Expand Down Expand Up @@ -114,7 +115,7 @@
'NAME': 'mxonline3',
'USER': 'root',
'PASSWORD': 'mtianyanroot',
'HOST': 'mysql',
'HOST': '127.0.0.1',
'PORT': '3306'

}
Expand Down Expand Up @@ -179,6 +180,8 @@
X_FRAME_OPTIONS = 'sameorigin'

REST_FRAMEWORK = {
'DATETIME_FORMAT': '%Y-%m-%d %H:%M:%S',
# 'EXCEPTION_HANDLER': 'xadmin_api.custom.custom_exception_handler',
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.

Expand Down Expand Up @@ -212,3 +215,7 @@
# }

}

MAIN_DISPLAY = "$显示字段$"
MAIN_AVATAR = "$显示头像$"
MAIN_PIC = "$显示图片$"
41 changes: 3 additions & 38 deletions Mxonline3/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,46 +23,13 @@
import xadmin
from django.views.generic import TemplateView
# from users.views import user_login
import xadmin_api
from Mxonline3.settings import MEDIA_ROOT
from courses.api_views import CourseViewSet, LessonViewSet, VideoViewSet, CourseResourceViewSet
from operation.api_views import UserAskViewSet, CourseCommentsViewSet, UserFavoriteViewSet, UserMessageViewSet, UserCourseViewSet
from organization.api_views import CityDictViewSet, CourseOrgViewSet, TeacherViewSet
from organization.views import OrgView
from users.api_views import EmailVerifyRecordViewSet, BannerViewSet, UserProfileViewSet, CurrentUserView, AdminLoginView, DashBoardView, \
AdminLogoutView
from users.views import LoginView, RegisterView, ActiveUserView, ForgetPwdView, ResetView, ModifyPwdView, LogoutView, \
IndexView, CaptchaView, AdminIndexView
from rest_framework.routers import DefaultRouter

router = DefaultRouter(trailing_slash=False)
router.register('email_verify_record/?', EmailVerifyRecordViewSet)

router.register('banner/?', BannerViewSet)

router.register('city_dict/?', CityDictViewSet)

router.register('course_org/?', CourseOrgViewSet)

router.register('teacher/?', TeacherViewSet)

router.register('course/?', CourseViewSet)

router.register('lesson/?', LessonViewSet)

router.register('video/?', VideoViewSet)

router.register('course_resource/?', CourseResourceViewSet)

router.register('user_ask/?', UserAskViewSet)

router.register('course_comments/?', CourseCommentsViewSet)

router.register('user_favorite/?', UserFavoriteViewSet)

router.register('user_message/?', UserMessageViewSet)

router.register('user_course/?', UserCourseViewSet)
router.register('users/?', UserProfileViewSet)
urlpatterns = [
# path('admin/', admin.site.urls),
path('admin/', xadmin.site.urls),
Expand Down Expand Up @@ -106,10 +73,8 @@
# 富文本相关url
path('ueditor/', include('DjangoUeditor.urls')),
path('api/v1/', include(router.urls)),
path('api/v1/currentUser', CurrentUserView.as_view(), name='user_current_user'),
path('api/xadmin/v1/', include('xadmin_api.urls')),

path('api/v1/captcha-generate/', CaptchaView.as_view(), name='captcha'),
path('api/v1/login/account', AdminLoginView.as_view(), name='admin_login'),
path('api/v1/user/logout', AdminLogoutView.as_view(), name='admin_logout'),
path('api/v1/fake_chart_data', DashBoardView.as_view(), name='dashboard'),
re_path('xadmin/.*', AdminIndexView.as_view(), name="admin_index"),
]
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

- 在线体验地址: https://mooc.funpython.cn/xadmin

>账号: admin
>账号: mtianyan
密码: admin2020

- 首页地址: https://mooc.funpython.cn/
Expand Down
24 changes: 0 additions & 24 deletions apps/courses/api_views.py

This file was deleted.

45 changes: 45 additions & 0 deletions apps/courses/migrations/0002_auto_20200822_2007.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Generated by Django 3.0 on 2020-08-22 20:07

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('organization', '0002_auto_20200822_2007'),
('courses', '0001_initial'),
]

operations = [
migrations.AlterField(
model_name='course',
name='course_org',
field=models.ForeignKey(blank=True, help_text='$显示字段$__name', null=True, on_delete=django.db.models.deletion.CASCADE, to='organization.CourseOrg', verbose_name='所属机构'),
),
migrations.AlterField(
model_name='course',
name='image',
field=models.ImageField(help_text='$显示图片$', upload_to='courses/%Y/%m', verbose_name='封面图'),
),
migrations.AlterField(
model_name='course',
name='teacher',
field=models.ForeignKey(blank=True, help_text='$显示字段$__name', null=True, on_delete=django.db.models.deletion.CASCADE, to='organization.Teacher', verbose_name='讲师'),
),
migrations.AlterField(
model_name='courseresource',
name='course',
field=models.ForeignKey(help_text='$显示字段$__name', on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='课程'),
),
migrations.AlterField(
model_name='lesson',
name='course',
field=models.ForeignKey(help_text='$显示字段$__name', on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='课程'),
),
migrations.AlterField(
model_name='video',
name='lesson',
field=models.ForeignKey(help_text='$显示字段$__name', on_delete=django.db.models.deletion.CASCADE, to='courses.Lesson', verbose_name='章节'),
),
]
24 changes: 24 additions & 0 deletions apps/courses/migrations/0003_auto_20200823_1840.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 3.0 on 2020-08-23 18:40

from django.db import migrations, models
import xadmin_api.fields


class Migration(migrations.Migration):

dependencies = [
('courses', '0002_auto_20200822_2007'),
]

operations = [
migrations.AlterField(
model_name='course',
name='desc',
field=models.TextField(max_length=300, verbose_name='课程描述'),
),
migrations.AlterField(
model_name='course',
name='image',
field=xadmin_api.fields.ImageField(help_text='$显示图片$', upload_to='courses/%Y/%m', verbose_name='封面图'),
),
]
22 changes: 13 additions & 9 deletions apps/courses/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,28 @@
from django.db import models

from DjangoUeditor.models import UEditorField
from Mxonline3.settings import MAIN_DISPLAY, MAIN_PIC
from organization.models import CourseOrg, Teacher





# Create your models here.
from xadmin_api.fields import ImageField, richTextField


class Course(models.Model):
"""课程信息表"""
DEGREE_CHOICES = (
("cj", u"初级"),
("zj", u"中级"),
("gj", u"高级")
)
course_org = models.ForeignKey(CourseOrg, on_delete=models.CASCADE, verbose_name=u"所属机构", null=True, blank=True)
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, verbose_name=u"讲师", null=True, blank=True)
course_org = models.ForeignKey(CourseOrg, on_delete=models.CASCADE, verbose_name=u"所属机构", null=True, blank=True,
help_text=f'{MAIN_DISPLAY}__name')
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, verbose_name=u"讲师", null=True, blank=True, help_text=f'{MAIN_DISPLAY}__name')
name = models.CharField(max_length=50, verbose_name=u"课程名")
desc = models.CharField(max_length=300, verbose_name=u"课程描述")
desc = models.TextField(max_length=300, verbose_name=u"课程描述")
# TextField允许我们不输入长度。可以输入到无限大。暂时定义为TextFiled,之后更新为富文本
# 修改image path,不能传y m 进来,不能加斜杠是一个相对路径,相对于setting中配置的media root
detail = UEditorField(verbose_name=u"课程详情", width=600, height=300, imagePath="courses/ueditor/", filePath="courses/ueditor/", default='')
Expand All @@ -32,10 +36,10 @@ class Course(models.Model):
fav_nums = models.IntegerField(default=0, verbose_name=u"收藏人数")
you_need_know = models.CharField(max_length=300, default=u"一颗勤学的心是本课程必要前提", verbose_name=u"课程须知")
teacher_tell = models.CharField(max_length=300, default=u"什么都可以学到,按时交作业,不然叫家长", verbose_name=u"老师告诉你")
image = models.ImageField(
image = ImageField(
upload_to="courses/%Y/%m",
verbose_name=u"封面图",
max_length=100)
max_length=100, help_text=MAIN_PIC)
# 保存点击量,点进页面就算
click_nums = models.IntegerField(default=0, verbose_name=u"点击数")
category = models.CharField(max_length=20, verbose_name=u"课程类别", default=u"后端开发")
Expand Down Expand Up @@ -65,7 +69,7 @@ class Lesson(models.Model):
"""章节模型"""
# 因为一个课程对应很多章节。所以在章节表中将课程设置为外键。
# 作为一个字段来让我们可以知道这个章节对应那个课程
course = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name=u"课程")
course = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name=u"课程", help_text=f"{MAIN_DISPLAY}__name")
name = models.CharField(max_length=100, verbose_name=u"章节名")
add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")

Expand All @@ -81,7 +85,7 @@ class Video(models.Model):
"""每章视频"""
# 因为一个章节对应很多视频。所以在视频表中将章节设置为外键。
# 作为一个字段来存储让我们可以知道这个视频对应哪个章节.
lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE, verbose_name=u"章节")
lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE, verbose_name=u"章节", help_text=f'{MAIN_DISPLAY}__name')
url = models.CharField(max_length=200, default="http://blog.mtianyan.cn/", verbose_name=u"访问地址")
name = models.CharField(max_length=100, verbose_name=u"视频名")
# 使用分钟做后台记录(存储最小单位)前台转换
Expand All @@ -100,7 +104,7 @@ class CourseResource(models.Model):
"""课程资源"""
# 因为一个课程对应很多资源。所以在课程资源表中将课程设置为外键。
# 作为一个字段来让我们可以知道这个资源对应那个课程
course = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name=u"课程")
course = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name=u"课程", help_text=f'{MAIN_DISPLAY}__name')
name = models.CharField(max_length=100, verbose_name=u"名称")
# 这里定义成文件类型的field,后台管理系统中会直接有上传的按钮。
# FileField也是一个字符串类型,要指定最大长度。
Expand Down
27 changes: 0 additions & 27 deletions apps/courses/serializers.py

This file was deleted.

31 changes: 0 additions & 31 deletions apps/operation/api_views.py

This file was deleted.

42 changes: 42 additions & 0 deletions apps/operation/migrations/0003_auto_20200822_2007.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Generated by Django 3.0 on 2020-08-22 20:07

from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('courses', '0002_auto_20200822_2007'),
('operation', '0002_auto_20181128_0630'),
]

operations = [
migrations.AlterField(
model_name='coursecomments',
name='course',
field=models.ForeignKey(help_text='$显示字段$__name', on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='课程'),
),
migrations.AlterField(
model_name='coursecomments',
name='user',
field=models.ForeignKey(help_text='$显示字段$__name', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户'),
),
migrations.AlterField(
model_name='usercourse',
name='course',
field=models.ForeignKey(help_text='$显示字段$__name', on_delete=django.db.models.deletion.CASCADE, to='courses.Course', verbose_name='课程'),
),
migrations.AlterField(
model_name='usercourse',
name='user',
field=models.ForeignKey(help_text='$显示字段$__username', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户'),
),
migrations.AlterField(
model_name='userfavorite',
name='user',
field=models.ForeignKey(help_text='$显示字段$__username', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='用户'),
),
]
Loading

0 comments on commit 7b08414

Please sign in to comment.