当前位置: 首页 > news >正文

wordpress主题带手机版/seo在中国

wordpress主题带手机版,seo在中国,电商导购网站怎么做,手机画平面图软件一. 常规做法 利用python类属性和实例属性可以临时添加的特性,在原有相关model中添加统计属性 blog_types BlogType.objects.all() blog_types_list [] for blog_type in blog_types:# python的类属性可以在需要的时候自定义添加,# 如blog_type是BlogT…

一. 常规做法

  利用python类属性和实例属性可以临时添加的特性,在原有相关model中添加统计属性

blog_types = BlogType.objects.all()
blog_types_list = []
for blog_type in blog_types:
    # python的类属性可以在需要的时候自定义添加,# 如blog_type是BlogType的实例,BlogType只有一个blog_name属性,# 也就是说blog_type有blog_name属性# 通过blog_type.blog_count给blog_type添加一个新的属性blog_countblog_type.blog_count = Blog.objects.filter(blog_type=blog_type).count()blog_types_list.append(blog_type)
context['blog_types'] = blog_types_list

二.利用annotate函数

1. annotate(*args, **kwargs) 

  通过相关的查询语句,可以QuerySet中的每一个类    

  查询语句可以是一个简单的值,一个对模型(或任何相关模型)上的字段的引用,或者一个在与QuerySet中对象相关的对象上计算的聚合表达式(平均值、和等)。

  annotate()的每个参数都是一个注释,该注释将被添加到返回的QuerySet中的每个对象。

  使用关键字参数指定的注释将使用关键字作为注释的别名。

  匿名参数将根据聚合函数的名称和聚合的模型字段为它们生成别名。

  只有引用单个字段的聚合表达式才能是匿名参数。

  其他的都必须是关键字参数。

  例如,如果你正在操作一个博客列表,你可能想要确定每个博客中有多少条目:

>>> from django.db.models import Count
>>> q = Blog.objects.annotate(Count('entry')) # The name of the first blog
>>> q[0].name
'Blogasaurus'
# The number of entries on the first blog
>>> q[0].entry__count
42

  Blog模型本身并不定义entry__count属性,但是通过使用关键字参数指定聚合函数,您可以控制注释的名称:

>>> q = Blog.objects.annotate(number_of_entries=Count('entry'))
# The number of entries on the first blog, using the name provided >>> q[0].number_of_entries
42

2. 实例演示

  (1)两个模型,用外键关联

class BlogType(models.Model):type_name = models.CharField(max_length=15)	def __str__(self):return self.type_nameclass Blog(models.Model):title = models.CharField(max_length=50)blog_type = models.ForeignKey(BlogType, on_delete=models.DO_NOTHING)
    #second method: blog_type = models.ForeignKey(BlogType, on_delete=models.DO_NOTHING, related_name="blog_blogType")content = models.TextField()author = models.ForeignKey(User, on_delete=models.DO_NOTHING)create_time = models.DateTimeField(auto_now_add=True)last_update = models.DateTimeField(auto_now=True)

  

  (2)views.py中,调用annotate

    blog_count 为关键字参数,

    Count()为聚合函数,

    'blog'是与BlogType模型关联的Blog模型的小写

或者  在Blog模型中的blog_type定义时,指定其related_name="blog_blogType",在Count函数中引用"blog_blogType"

  context={}context['blogs'] = page_of_blogs.object_listcontext['page_of_blogs'] = page_of_blogscontext['page_range'] = page_rangecontext['blog_types'] = BlogType.objects.annotate(blog_count=Count('blog'))
#second method: context['blog_types'] = BlogType.objects.annotate(blog_count=Count('blog_blogType'))context['blog_dates'] = Blog.objects.dates('create_time','month',order='DESC') 

  (3)templates中

<a href="{% url 'blogs_with_type' blog_type.pk %}">{{blog_type.type_name}}({{blog_type.blog_count}})</a>

  


注明:学习资料来自“再敲一行代码的个人空间”以及“杨仕航的博客”  

转载于:https://www.cnblogs.com/AngryZe/p/9267462.html

http://www.jmfq.cn/news/4831453.html

相关文章:

  • ui做自适应网站/搜索引擎推广的关键词
  • 基于web的高校门户网站建设/关键词分析工具
  • 杭州网站建设索q.479185700/百度关键词优化送网站
  • 娄底做网站/seochinazcom
  • 网站开发怎么拉客户/2022最新永久地域网名
  • 包头网站建设公司良居网络/seo营销网站的设计标准
  • 网站建设业务怎么做/谷歌排名
  • 什么是网络营销产生的基础/seo的优化流程
  • 常州微信网站建设平台/公司网站营销
  • 网站设计高端网站制作/淘宝关键词优化推广排名
  • 北京定制网站价格/今日重大新闻
  • 真人百家樂网站建设/企业文化设计
  • 社保网站减员申报怎么做/市场调研报告怎么写
  • 微信分享网站短链接怎么做/搜索引擎营销策划方案
  • 自制网站的动态图怎么做/roseonly企业网站优化
  • 建网站和开发软件哪个难/关键词优化网站排名
  • 怎么做网站差不多站长/营销推广方案模板
  • 长春做公司网站的/长沙seo男团
  • 做网站的成本在哪/有了域名怎么建网站
  • 西安东郊网站建设/辽宁网站seo
  • 做网站建设/店铺推广软文300字
  • 网络销售培训学校/搜索引擎优化网站排名
  • 想建一个免费的网站/离我最近的电脑培训中心
  • 中恒建设集团有限公司 网站/网站优化企业排名
  • 政府网站建设 特色栏目展示/合肥百度网站排名优化
  • 微网站 制作平台/广州优化营商环境条例
  • 便宜的做网站/如何软件网站优化公司
  • 江门网站建设方案/宁波优化网站哪家好
  • 个人做网站多少钱/引擎优化
  • 个人备案网站可以做商城吗/西点培训