model.py下的Meta笔记

class Topic(models.Model):
    text = models.CharField(max_length=200)  
    date_added = models.DateTimeField(auto_now_add=True)
    author = models.CharField(max_length=20)

    def __str__(self):     # 1
    """返回 models 的字符串的表示"""
        return self.text

class Entry(models.Model):
    class Meta:            # 2
        verbose_name_plural = "entriesssss" 

    def __str__(self):
        """返回 model 的字符串表示"""
        return self.text[:50] + "..."

1、 注释#1处
是一个str()函数,其作用是。。。。。(代完成)
2、 注释#2处:
首先来看看 Meta元类的原文档:
  Model metadata is “anything that’s not a field”, such as ordering options (ordering), database table name (db_table), or human-readable singular and plural names (verbose_name and verbose_name_plural). None are required, and adding class Meta to a model is completely optional.
  
翻译:
  模型元数据是任何不是字段的东西,例如排序选项( ordering)、数据库表名(db_table)、或人类可读的单数和复数名称(verbose_name和verbose_name_plural)。没有一个是必需的,在模型中class Meta是完全可选的。

Meta下有很多options,这里选两个用到的举例说明:
(1) ordering  
  这个字段是告诉Django模型对象返回的记录结果集是按照哪个字段排序的。
这是一个字符串的元组或列表,来自于class Model中的字段
当字段名前面没有’-‘时,将默认使用升序排列。使用’?’将会随机排列
ordering=[‘date_added] # 按发布时间升序排列
ordering=[‘-date_added’] # 按发布时间按降序排列,-表示降序
ordering=[‘?date_added’] # 随机排序,?表示随机
ordering=[‘-date_added’,’author’] # 以date_added为降序,再以author升序排列

(2) verbose_name_plural
    这个选项是指定模型的复数形式是什么,verbose_name_plural = “entriesssss",会再admin账户下才看得到差别。
   如果不指定Django会自动在模型名称后加一个s,并且首字母自动大写’
  比如上面的Topic 和 Entry,一个没有verbose_name_plural参数,一个有并且为verbose_name_plural= “entriesssss”,看结果:
  用admin登陆后台

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值