-
Notifications
You must be signed in to change notification settings - Fork 37
2 使用代码生成器
DealiAxy edited this page May 30, 2021
·
1 revision
DjangoStarter内置业务代码生成器,开发者只需要专注于编写最核心的 models.py
完成模型定义,其他代码自动生成,减少重复劳动,解放生产力。
首先完成 models.py
里的模型设计,编写规范可以参照 apps/core/models.py
。
下面是一个简单的模型设计例子:
from django.db import models
class Author(models.Model):
name = models.CharField('作者名称', max_length=20)
def __str__(self):
return self.name
class Meta:
verbose_name = '作者'
verbose_name_plural = verbose_name
class Article(models.Model):
name = models.CharField('文章名称', max_length=20)
content = models.TextField('文章内容')
author = models.ForeignKey('Author', verbose_name='文章作者', on_delete=models.CASCADE)
def __str__(self):
return self.name
class Meta:
verbose_name = '文章'
verbose_name_plural = verbose_name
- 每个字段加上友好的
verbose_name
,一般是中文名 - 定义
__str__
,便于在管理后台中表示这个模型的对象 - 定义
Meta
元类,给模型加上一个更友好的名称(一般是中文名)
运行命令:
python manage.py generate_code [app_label] [verbose_name]
参数说明:
-
app_label
: App名称,之前运行django-admin
命令创建的App名称 -
verbose_name
: 和模型的verbose_name
类似,App的友好名称,一般是其中文名
注意:运行自动代码生成会覆盖已有的业务代码!
自动代码生成会创建(覆盖)以下文件:
__init__.py
apps.py
serializers.py
urls.py
viewsets.py
代码生成器会生成你需要的所有代码,之后在config/urls.py
文件中添加路由:
urlpatterns = [
path(f'core/', include('apps.core.urls')),
# 需要根据你的App名称添加这一行路由
path(app_label/', include('apps.app_label.urls')),
# ...
]