Initial commit: React + Django 城市手册项目

- Django 4.2 + DRF + JWT + GraphQL
- React 18 + MobX + styled-components
- PostgreSQL 数据库
- Docker + Docker Compose + Nginx
- 完整的功能模块(用户、版块、文章、服务、交互、版主管理)
- 完整的文档(需求、部署、测试)
This commit is contained in:
mashen
2026-04-09 13:56:02 +00:00
commit c866e74ece
98 changed files with 7644 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
from django.contrib.auth.models import AbstractUser
from django.db import models
class User(AbstractUser):
"""Custom user model extending AbstractUser."""
ROLE_CHOICES = [
('user', '普通用户'),
('moderator', '版主'),
('ai_auditor', 'AI审核员'),
('admin', '管理员'),
]
STATUS_CHOICES = [
('active', '正常'),
('disabled', '禁用'),
]
email = models.EmailField(unique=True)
first_name = models.CharField(max_length=150)
last_name = models.CharField(max_length=150)
avatar = models.ImageField(upload_to='avatars/', null=True, blank=True)
role = models.CharField(max_length=20, choices=ROLE_CHOICES, default='user')
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='active')
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username', 'first_name']
class Meta:
db_table = 'users'
verbose_name = 'User'
verbose_name_plural = 'Users'
def __str__(self):
return self.email
def is_moderator(self):
return self.role == 'moderator'
def is_admin(self):
return self.role == 'admin'
def is_ai_auditor(self):
return self.role == 'ai_auditor'