更改表结构
This commit is contained in:
@@ -1,39 +0,0 @@
|
|||||||
from django.db import models
|
|
||||||
from django.core.validators import validate_comma_separated_integer_list
|
|
||||||
|
|
||||||
|
|
||||||
class Department(models.Model):
|
|
||||||
did = models.IntegerField("部门ID")
|
|
||||||
department = models.CharField("部门", max_length=10) # 如“程序部”
|
|
||||||
department_en = models.CharField("部门英文名称", max_length=30) # 如“程序部”
|
|
||||||
content = models.CharField("内容", max_length=800) # 如部门介绍/部门要求
|
|
||||||
introduction = models.CharField("介绍", max_length=800) # 如部门介绍/部门要求
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
db_table = 'it_Department'
|
|
||||||
verbose_name_plural = u'部门详情'
|
|
||||||
|
|
||||||
|
|
||||||
class History(models.Model):
|
|
||||||
grade = models.IntegerField("年级")
|
|
||||||
did = models.IntegerField("部门ID")
|
|
||||||
department = models.CharField("部门", max_length=10) # 如“程序部”
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
db_table = 'it_History'
|
|
||||||
verbose_name_plural = u'历史表'
|
|
||||||
|
|
||||||
|
|
||||||
class Members(models.Model):
|
|
||||||
# 默认id作为成员id
|
|
||||||
avatar = models.ImageField("头像", upload_to="avatar", blank=True)
|
|
||||||
did = models.IntegerField("所属部门ID", default=0)
|
|
||||||
grade = models.IntegerField("年级")
|
|
||||||
name = models.CharField("成员姓名", max_length=10)
|
|
||||||
motto = models.CharField("座右铭", max_length=30)
|
|
||||||
department = models.CharField("所属部门", max_length=10)
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
db_table = 'it_Members'
|
|
||||||
verbose_name_plural = u'部门成员'
|
|
||||||
|
|
||||||
@@ -46,10 +46,10 @@ INSTALLED_APPS = [
|
|||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
'rest_framework',
|
'rest_framework',
|
||||||
'Apps.enroll',
|
'apps.enroll',
|
||||||
'Apps.history',
|
'apps.history',
|
||||||
'Apps.comments',
|
'apps.comments',
|
||||||
'Apps.work',
|
'apps.work',
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,10 @@ from ITShowPlatform import settings
|
|||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('v1/api/', include('Apps.comments.urls')),
|
path('v1/api/', include('apps.comments.urls')),
|
||||||
path('v1/api/', include('Apps.history.urls')),
|
path('v1/api/', include('apps.history.urls')),
|
||||||
path('v1/api/', include('Apps.enroll.urls')),
|
path('v1/api/', include('apps.enroll.urls')),
|
||||||
path('v1/api/', include('Apps.work.urls')),
|
path('v1/api/', include('apps.work.urls')),
|
||||||
path(r'^api-auth/', include('rest_framework.urls')),
|
path(r'^api-auth/', include('rest_framework.urls')),
|
||||||
re_path(r'^media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
|
re_path(r'^media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,4 +3,4 @@ from django.apps import AppConfig
|
|||||||
|
|
||||||
class CommentsConfig(AppConfig):
|
class CommentsConfig(AppConfig):
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
name = 'Apps.comments'
|
name = 'apps.comments'
|
||||||
@@ -3,4 +3,4 @@ from django.apps import AppConfig
|
|||||||
|
|
||||||
class EnrollConfig(AppConfig):
|
class EnrollConfig(AppConfig):
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
name = 'Apps.enroll'
|
name = 'apps.enroll'
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
|
from pathlib import Path
|
||||||
from random import Random # 用于生成随机码
|
from random import Random # 用于生成随机码
|
||||||
from django.core.mail import send_mail # 发送邮件模块
|
from django.core.mail import send_mail # 发送邮件模块
|
||||||
from Apps.enroll.models import EmailVerifyRecord # 邮箱验证model
|
from apps.enroll.models import EmailVerifyRecord # 邮箱验证model
|
||||||
from django.conf import settings # setting.py添加的的配置信息
|
from django.conf import settings # setting.py添加的的配置信息
|
||||||
import random
|
import random
|
||||||
|
import os
|
||||||
|
|
||||||
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
|
|
||||||
# 生成随机字符串
|
# 生成随机字符串
|
||||||
@@ -38,7 +42,8 @@ def send_code_email(email):
|
|||||||
email_title = ""
|
email_title = ""
|
||||||
email_body = ""
|
email_body = ""
|
||||||
email_title = "注册激活"
|
email_title = "注册激活"
|
||||||
file = open("/email_body")
|
# file = open("/email_body")
|
||||||
|
file = open(os.path.join(BASE_DIR, "enroll", "email_body"))
|
||||||
email_body = str(file.read).format(code)
|
email_body = str(file.read).format(code)
|
||||||
# 发送邮件
|
# 发送邮件
|
||||||
send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email])
|
send_status = send_mail(email_title, email_body, settings.EMAIL_FROM, [email])
|
||||||
@@ -2,24 +2,24 @@ from django.db import models
|
|||||||
|
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
class Department(models.Model):
|
# class Department(models.Model):
|
||||||
class Meta:
|
# class Meta:
|
||||||
verbose_name_plural = u"部门信息"
|
# verbose_name_plural = u"部门信息"
|
||||||
|
#
|
||||||
# department = [
|
# # department = [
|
||||||
# (0, "系统维护"),
|
# # (0, "系统维护"),
|
||||||
# (1, "APP开发"),
|
# # (1, "APP开发"),
|
||||||
# (2, "Web开发"),
|
# # (2, "Web开发"),
|
||||||
# (3, "程序开发"),
|
# # (3, "程序开发"),
|
||||||
# (4, "游戏开发"),
|
# # (4, "游戏开发"),
|
||||||
# (5, "UI设计")
|
# # (5, "UI设计")
|
||||||
# ]
|
# # ]
|
||||||
# id = models.IntegerField(verbose_name="部门ID", choices=department, primary_key=True)
|
# # id = models.IntegerField(verbose_name="部门ID", choices=department, primary_key=True)
|
||||||
name = models.CharField(max_length=10, verbose_name="部门名称")
|
# name = models.CharField(max_length=10, verbose_name="部门名称")
|
||||||
picture = models.ImageField(verbose_name="部门图标")
|
# picture = models.ImageField(verbose_name="部门图标")
|
||||||
|
#
|
||||||
def __str__(self):
|
# def __str__(self):
|
||||||
return self.name
|
# return self.name
|
||||||
|
|
||||||
|
|
||||||
class NewMember(models.Model):
|
class NewMember(models.Model):
|
||||||
@@ -61,9 +61,6 @@ class NewMember(models.Model):
|
|||||||
expectation = models.TextField(max_length=200, verbose_name="期待的话")
|
expectation = models.TextField(max_length=200, verbose_name="期待的话")
|
||||||
status = models.SmallIntegerField(choices=schedules, default=0, verbose_name="报名状态")
|
status = models.SmallIntegerField(choices=schedules, default=0, verbose_name="报名状态")
|
||||||
|
|
||||||
# verification_code = models.ForeignKey("EmailVerifyRecord", on_delete=models.DO_NOTHING, verbose_name="邮箱验证码")
|
|
||||||
# verification_code = models.CharField(max_length=4)
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from rest_framework.validators import UniqueValidator
|
from rest_framework.validators import UniqueValidator
|
||||||
from Apps.enroll.models import Department, NewMember, EmailVerifyRecord
|
from apps.enroll.models import Department, NewMember, EmailVerifyRecord
|
||||||
import time
|
import time
|
||||||
from utils.get_error_msg import get_error_msg
|
from utils.get_error_msg import get_error_msg
|
||||||
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.generics import GenericAPIView
|
from rest_framework.generics import GenericAPIView
|
||||||
from Apps.enroll.models import Department, EmailVerifyRecord, NewMember
|
from apps.enroll.models import Department, EmailVerifyRecord, NewMember
|
||||||
from Apps.enroll.serializers import DepartmentSerializer, NewMemberSerializer, NewMemberScheduleSerializer, \
|
from apps.enroll.serializers import DepartmentSerializer, NewMemberSerializer, NewMemberScheduleSerializer, \
|
||||||
SendEmailSerializer
|
SendEmailSerializer
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from Apps.enroll.email import send_code_email
|
from apps.enroll.email import send_code_email
|
||||||
from utils.get_error_msg import get_error_msg
|
from utils.get_error_msg import get_error_msg
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
@@ -3,4 +3,4 @@ from django.apps import AppConfig
|
|||||||
|
|
||||||
class TodoListConfig(AppConfig):
|
class TodoListConfig(AppConfig):
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
name = 'Apps.history'
|
name = 'apps.history'
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
from django.db import models
|
||||||
|
from django.core.validators import MaxValueValidator, MinValueValidator
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
|
class Department(models.Model):
|
||||||
|
id = models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='部门ID')
|
||||||
|
# did = models.IntegerField("部门ID")
|
||||||
|
department_cn = models.CharField("部门名称", max_length=10) # 如“程序部”
|
||||||
|
department_en = models.CharField("部门英文名称", max_length=30) # 如“程序部”
|
||||||
|
picture = models.ImageField(verbose_name="部门图标", default=0)
|
||||||
|
content = models.CharField("内容", max_length=800) # 如部门介绍/部门要求
|
||||||
|
introduction = models.CharField("介绍", max_length=800) # 如部门介绍/部门要求
|
||||||
|
status = models.SmallIntegerField("部门状态", choices=[(0, "解散"), (1, "健在")], default=1)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'it_Department'
|
||||||
|
verbose_name_plural = '部门详情'
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.department
|
||||||
|
|
||||||
|
|
||||||
|
class History(models.Model):
|
||||||
|
# grade = models.IntegerField("年级")
|
||||||
|
years = models.IntegerField("年份", default=int(datetime.now().strftime('%Y')), validators=[
|
||||||
|
MaxValueValidator(2300),
|
||||||
|
MinValueValidator(2010)
|
||||||
|
])
|
||||||
|
# did = models.IntegerField("部门ID")
|
||||||
|
# did = models.ForeignKey(Department, on_delete=models.DO_NOTHING(), related_name="history", verbose_name="部门id")
|
||||||
|
# department = models.CharField("部门", max_length=10) # 如“程序部”
|
||||||
|
department = models.ForeignKey(Department, on_delete=models.DO_NOTHING, related_name="history", verbose_name="部门")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'it_History'
|
||||||
|
verbose_name_plural = '历史表'
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.department
|
||||||
|
|
||||||
|
|
||||||
|
class Members(models.Model):
|
||||||
|
# 默认id作为成员id
|
||||||
|
avatar = models.ImageField("头像", upload_to="avatar", blank=True)
|
||||||
|
did = models.IntegerField("所属部门ID", default=0)
|
||||||
|
grade = models.IntegerField("年级")
|
||||||
|
name = models.CharField("成员姓名", max_length=10)
|
||||||
|
motto = models.CharField("座右铭", max_length=30)
|
||||||
|
# department = models.CharField("所属部门", max_length=10)
|
||||||
|
department = models.ForeignKey(Department, on_delete=models.DO_NOTHING, related_name="member",
|
||||||
|
verbose_name="所属部门")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'it_Members'
|
||||||
|
verbose_name_plural = '部门成员'
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import re
|
import re
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
from Apps.history import *
|
from apps.history import *
|
||||||
from Apps.history.models import Department, Members, History
|
from apps.history.models import Department, Members, History
|
||||||
|
|
||||||
|
|
||||||
def validate_department(value):
|
def validate_department(value):
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
from django.conf.urls.static import static
|
from django.conf.urls.static import static
|
||||||
from ITShowPlatform import settings
|
from ITShowPlatform import settings
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from Apps.history.views import DepartmentViewSet, MemberViewSet, HistoryViewSet
|
from apps.history.views import DepartmentViewSet, MemberViewSet, HistoryViewSet
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('department/', DepartmentViewSet.as_view()),
|
path('department/', DepartmentViewSet.as_view()),
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from Apps.history import *
|
from apps.history import *
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.utils.decorators import method_decorator
|
from django.utils.decorators import method_decorator
|
||||||
from django.views.decorators.csrf import csrf_exempt
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
|
|
||||||
from Apps.history.models import Members, History, Department
|
from apps.history.models import Members, History, Department
|
||||||
from Apps.history.serializers import MembersSerializer, HistorySerializer, DepartmentSerializer
|
from apps.history.serializers import MembersSerializer, HistorySerializer, DepartmentSerializer
|
||||||
|
|
||||||
|
|
||||||
class DepartmentViewSet(APIView):
|
class DepartmentViewSet(APIView):
|
||||||
@@ -3,4 +3,4 @@ from django.apps import AppConfig
|
|||||||
|
|
||||||
class WorksConfig(AppConfig):
|
class WorksConfig(AppConfig):
|
||||||
default_auto_field = 'django.db.models.BigAutoField'
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
name = 'Apps.work'
|
name = 'apps.work'
|
||||||
Reference in New Issue
Block a user