django 外键 ,django __
2016-09-29 16:32
274 查看
data sqlite> select * from author; id name age 1 jim 12 2 tom 11 sqlite> select * from book; id name author_id 1 learn java 1 2 learn python 1 3 learn c++ 2 models.py # -*- coding: UTF-8 -*- from __future__ import unicode_literals from django.db import models # Create your models here. class Author(models.Model): name = models.CharField(verbose_name='姓名', max_length=50) age = models.IntegerField(verbose_name='年龄') class Book(models.Model): name = models.CharField(verbose_name='书名', max_length=100) author = models.ForeignKey(Author, verbose_name='作者') 执行语句 >>> Author.objects.filter(book__name='learn java') [<Author: jim>] >>> author = Author.objects.get(pk=1) >>> author.book_set.all() [<Book: learn java>, <Book: learn python>] 假如把类Book改成这样 class Book(models.Model): name = models.CharField(verbose_name='书名', max_length=100) author = models.ForeignKey(Author, verbose_name='作者', related_name='bs', related_query_name='b') 那么上面查询代码就应该写成这样 >>> Author.objects.filter(b__name='learn java') [<Author: jim>] >>> author = Author.objects.get(pk=1) >>> author.bs.all() [<Book: learn java>, <Book: learn python>] 如果book表里有两个字段都外键关联author表,这时related_name就非常有用了。
相关文章推荐
- django数据库操作-增删改查-多对多关系以及一对多(外键)关系
- 方法定义django admin中 外键下拉框添加过滤(只需要显示我所要的过滤结果)
- Django开发中的那些坑(1)--数据库操作外键命名
- django admin 或xdmin list_display search_fields list_filter 如果显示搜索外键或多对多字段
- django 外键关联删除解决
- django中一个应用使用另一个应用的模型类并建立外键
- django admin.py 外键,反向查询
- 禁用django的物理外键(CONSTRAINT,REFERENCES)
- 疯狂的Django 之深度外键跨表查找之疯狂INNER JOIN
- Django如何创建指向同一个模型的多个外键?
- 举例讲解Django中数据模型访问外键值的方法
- Django外键(ForeignKey)操作以及related_name的作用
- Django外键关系描述
- python django 多级业务树形结构规划及页面渲染 概述: 在项目中,父级到子级结构并不少见,如果仅仅的两层树形结构,我们可以使用数据库的外键设计轻松做到,子级业务表设计一字段外键到父级
- 设置django的admin中外键的默认值
- Django外键的删除
- Django 外键、多对多插入数据方法
- Django框架学习笔记(11.ORM字段参数及外键简介)
- Blog.objects.filter()反查外键,django数据库models中的跨表查询,相当于sql的join
- django外键和多数据库应用