你或许已经早已读过我们的原创文章Django基础(1): 模型Models的介绍与设计,并已经知道一个模型的设计是一个app的核心。然而仅知道基础知识是远远不够的,在实际web开发过程中你需要掌握一些模型的高级技巧,比如灵活定义Meta选项,动态定义文件上传路径,使用Manager方法,重写save方法,才能充分发挥Django的灵活优势。今天小编我以亲身经历就来讲下Django模型Models的高级进阶,分享些实用技巧。另外送个粽子给大家,祝大家端午节快乐!!
一个最基本的django模型
我们来先看下一个新闻博客的Article模型。这个模型是最基本的django模型,里面包括了各个字段(fields),重写了显示文章对象名字的__str__方法(python内置的),并在Meta选项里给模型命名(verbose name)。我们建议每个django模型至少包括字段,重写的__str__方法和Meta选项。
from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
from django.utils.timezone import now
class Article(models.Model):
STATUS_CHOICES = (
('d', '草稿'),
('p', '发表'),
)
title = models.CharField('标题', max_length=200, unique=True)
slug = models.SlugField('slug', max_length=60)
body = models.TextField(