对于foreikey 和 manytomany
Model类中写模型,拿到Model对象时,正向查询的时候,模型中点foreikey字段是对象,点manytomany字段是集合
manaytomany(to='Author',throgh='Book2Authors') 这个Booke2Authors表就是中介模型(只针对多对多manytomany)
我们这样写原因1:用我们自己写的第三张表,更易扩展 2.有了manytomany字段,方便我们查询。 3.用了中介模型后,就不能obj.m.add(9)这样操作了,只能使用clear()方法。而是要直接操作第三张表。(因为我们创建的第三张表可能有第三个,第四个字段,这些个API只能添加固定的manytomany字段。)
博客系统(cnblog)
预备知识
1.django的ORM(object relational mapping) 类==》表 类属性==》表字段 类对象==》表记录
跨表查询,分组查询
2.Bootstrap
3.Ajax(它是一种技术,原生可以是JS实现的ajax,我们使用jquery来实现ajax)
4.用户认证
auth
实现功能:
1.基于Ajax和用户认证实现的登录验证
---验证码
2.基于ajax和form组件实现注册功能
上面两个功能只需要一张user表,一对一的两张表,其实就是一张表。只不过他把一些不常用的字段放到了另一张表了。
3.系统首页布局
需要一个article表
4.个人站点页面设计
左边分类和标签和归档需要新的表。
5.文章详细页的设计
页面样式跟个人站点页面样式一样,所以用模板。
模板语法truncatewords截取固定长度字符串,但是他还是取到了全部的长度截取的。
6.基于ajax实现文章点赞与踩(对user跟article进行联合为一)ajango-unique_together
7.基于ajax评论功能
(也可以额外做一个评论点赞,再加一张表)
comment = ForeignKey('self',None=True,default=None)
8.kindeditor和BeautifulSoup(防止xss攻击 两个思路:1.前端入手(编辑器帮我们转移了) 2.后台过滤再存数据库(过滤敏感政治信息,恶意信息比如Script标签))
来源:oschina
链接:https://my.oschina.net/u/4395251/blog/4333937