08、自定义Manager

本文介绍了一种在Java ORM框架中实现自定义Manager的方法,通过重写Manager来提供额外的功能,如获取文章发布日期的归档列表。这种方法不干扰原有Manager的功能,并且能够方便地在Model中使用。

1、写自定义的manager

# 自定义Managert
class ArticleManager(models.Manager):
    """自定义Manager"""
    def distinct_date(self):
        """Manager中自定义的函数"""
        distinct_date_list = []
        date_list = self.values("date_publish")
        print date_list
        for date in  date_list:
            date =date["date_publish"].strftime("%Y-%m文章归档")
            if date not in distinct_date_list:
                distinct_date_list.append(date)
        return distinct_date_list

2、关联在需要使用的models中

class Article(models.Model):
    """文章"""
    title = models.CharField(max_length=50,verbose_name= '文章标题')
    objects = ArticleManager()

3、使用自定义的Managert

Article.objects.distinct_date()

备注:关连在需要用到的models里面去时一定要使用变量objects,这样就可以和原生的融合并且不影响原来Manager函数譬如all count 等功能的使用。

223916_bL9y_2663968.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值