Model/数据库设计建议

from django.db import models
from django.utils import timezone

class ModelManager(models.Manager):
    def get_queryset(self, *args, **kwargs):
        return super().get_queryset(*args, **kwargs).filter(is_deleted=False)

class ModelExt(models.Model):
    objects = ModelManager()
    is_deleted = models.BooleanField('是否已删除', default=False)
    created_time = models.DateTimeField('创建时间', default=timezone.now)
    updated_time = models.DateTimeField('更新时间', default=timezone.now)

    class Meta:
        abstract = True

Model注释同步到数据库

https://github.com/starryrbs/django-comment-migrate

drf-yasg与swagger

drf-yasg还是drf-yasg2?

Django中的swagger本质上是个App,很方便接入项目统一的认证体系

AspNetCore的swagger是个中间件,需要额外的配置

验证码

图形验证码继续使用django-simple-captcha

过期时间保存在数据库里,如果时区设置有问题就会导致验证码一直过期的问题

https://django-simple-captcha.readthedocs.io/en/latest/usage.html

Django Filter

  • Django-filter,让过滤如此简单:https://zhuanlan.zhihu.com/p/110060840
  • Django(69)最好用的过滤器插件Django-filter:https://www.cnblogs.com/jiakecong/p/14920543.html

Django Admin SimpleUI 自定义列

https://simpleui.72wo.com/topic/1266

消息队列:Django-Q

定时任务有点问题,最低只能一分钟执行一次

参考资料

  • Django官方文档「模型 Meta 选项」:https://docs.djangoproject.com/zh-hans/3.2/ref/models/options/
  • 2021年了,你真的应该考虑PostgreSQL了(1):https://chinese.freecodecamp.org/news/2021-postgres-1/