看djangobb源代码时,看到view的show_forum(request, forum_id, full=True)时,对于topics = forum.topics.order_by('-sticky', '-updated')想不明白,forum对象没有topics属性字段啊,怎么可以这样访问呢?原来是models中的topics 有个forum字段,该字段是个外键,related_name='topics',所以从关联表可以直接通过关联名来访问。topics的posts也存在类似的问题。

class Topic(models.Model):
forum = models.ForeignKey(Forum, related_name='topics', verbose_name=_('Forum'))
name = models.CharField(_('Subject'), max_length=255) class Post(models.Model):
topic = models.ForeignKey(Topic, related_name='posts', verbose_name=_('Topic'))

view中的应用:

topics = forum.topics.order_by('-sticky', '-updated').select_related()

posts = topic.posts.all().select_related()

djangobb之forum.topics的更多相关文章

  1. django之signal机制再探

    djangobb中的signal post_save信号调用send函数时,为什么它会对与topic.post相关的其他models进行修改?同一个信号,例如post_save(保存过后的处理),是所 ...

  2. drupal模板命名规则

    1.block--[region[module--delta]].tpl.php基于主题文件: block.tpl.php block--module--delta.tpl.phpblock--mod ...

  3. Drupal theme_hook

    模板语言和主题引擎 用Drupal的行话来说,主题就是一组负责你站点外观的文件.你可以从http://drupal.org/project/Themes下载第 3方主题,或者你可以自己动手创建一个主题 ...

  4. djangobb之debug-toolbar查看其sql

    #djangobb之views show_forum(request, forum_id, full=True) default queries including duplicates ) Quer ...

  5. discuz首页设置默认地址不带forum.php后缀的方法

    最近在研究discuz,上传安装几部搞定,打开首页跳到含有"/forum.php"的网址,到管理中心改了好一会儿也没好.那么如何实现discuz首页设置不带forum.php后缀呢 ...

  6. ./upload/forum.php

    这是forum.php的全部代码,然后试着读一读,自己做做笔记. define('APPTYPEID', 2); define('CURSCRIPT', 'forum'); define(); 定义常 ...

  7. ENode 2.0 - 第一个真实案例剖析-一个简易论坛(Forum)

    前言 经过不断的坚持和努力,ENode 2.0的第一个真实案例终于出来了.这个案例是一个简易的论坛,开发这个论坛的初衷是为了验证用ENode框架来开发一个真实项目的可行性.目前这个论坛在UI上是使用了 ...

  8. Windows Azure Service Bus Topics实现系统松散耦合

    前言 Windows Azure中的服务总线(Service Bus)提供了多种功能, 包括队列(Queue), 主题(Topic),中继(Relay),和通知中心(Notification Hub) ...

  9. RabbitMQ(五) -- topics

    RabbitMQ(五) -- topics `rabbitmq`中的`topic exchange`将路由键和某模式进行匹配,从而类似于正则匹配的方式去接收喜欢的信息. topic exchange ...

随机推荐

  1. 【性能测试】使用ab做Http性能测试

    [[TOC]] Http性能测试工具 ab(ApacheBench) 安装: yum install httpd 使用 ab -n 20 -c 1 192.168.35.1:8988/fortest ...

  2. NGUI的数据绑定

    ngui 的binding搜索结果 少之甚少 .即便去作者的youtube也收获不大 . 开发工作者更关心的是 数据的绑定,而不是一个显示控件简单属性的绑定. 说白了就是告诉用户 怎么绑定model吧 ...

  3. bzoj4480: [Jsoi2013]快乐的jyy

    [问题描述] 给定两个字符串A和B,表示JYY的两个朋友的名字.我们用A(i,j)表示A 字符串中从第i个字母到第j个字母所组成的子串.同样的,我们也可以定义B(x,y). JYY发现两个朋友关系的紧 ...

  4. python selenium 模拟登陆百度账号

    代码: from selenium import webdriver url = 'https://passport.baidu.com/v2/?login' username = 'your_use ...

  5. Java NIO系列教程(五)Buffer

    Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的.交互图如下: 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被 ...

  6. 学习笔记之Python Crash Course

    Python Crash Course https://www.safaribooksonline.com/library/view/python-crash-course/9781457197185 ...

  7. python之路——1

    王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 学习内容 python的历史: python2 源码不标准,混乱,重复代码太多, python3 统一 标准 ...

  8. is与==

     is和==的区别 1. id() 通过id()我们可以查看到⼀一个变量表示的值在内存中的地址. a1 = 100 b1 = 100 print(id(a1),id(b1)) #14071247240 ...

  9. sqlserver 查询重复数据

    use StudentManageDB go ,,) ,,) ,,) select * from ScoreList order by StudentId --在知道那个字段重复的情况 --查询所有重 ...

  10. 一次线上zabbix server 挂掉的思考

    突然间发现zabbix 挂了,咋发现的呢?报警的世界突然安静了,你就会觉得不妥了.这是运维人员的通病,有报警嫌烦,没报警心里会不安.1,图形界面上确实显示zabbix server is not ru ...