Django之使用extra报错处理

来源:互联网 发布:什么是淘宝第三方活动 编辑:程序博客网 时间:2024/06/05 15:24

错误描述

extra的作用:略

错误代码:

 # 查询按时间分类与该作者相关的文章    date_info = models.Article.objects.filter(user__name=user).extra(        select={'fmt_article_time': 'strftime("%%Y-%%m",add_time)'}    ).values('fmt_article_time').annotate(        count=Count('title'))

错误原因:

跨表查出两个表的字段都是add_time,需要确定下filter的条件!

class User(AbstractUser):    """    用户表    """    name = models.CharField(max_length=64, verbose_name='用户名', )    passwd = models.CharField(max_length=64, verbose_name='密码', )    avatar = models.FileField(verbose_name='用户头像', upload_to='avatar/%Y/%m/%d', default='avatar/default.jpg',                              null=False)    add_time = models.DateTimeField(verbose_name='用户创建时间', auto_now_add=True)    def __str__(self):        return self.name
class Article(models.Model):    """    文章表    """    title = models.CharField(max_length=100, verbose_name='文章标题')    article_brief = models.CharField(verbose_name='文章概述', max_length=1000)    add_time = models.DateTimeField(verbose_name='文章添加时间', auto_now_add=True)    read_count = models.IntegerField(verbose_name='文章阅读量', default=0)    comment_count = models.IntegerField(verbose_name='文章评论量', default=0)    go_up_count = models.IntegerField(verbose_name='文章点赞量', default=0)    go_down_count = models.IntegerField(verbose_name='文章踩量', default=0)    site_article_category = models.ForeignKey('SiteArticleCategory', verbose_name='所属文章小分类', null=True)    category = models.ManyToManyField('Category', verbose_name='文章分类')    user = models.ForeignKey('User', verbose_name='文章作者')    tags = models.ManyToManyField('Tag', through='Article2Tag', through_fields=('article', 'tag'))    def __str__(self):        return self.title
原创粉丝点击