以MYSQL为例:
(1)在model中定义两个数据表,食物信息和食物类别信息
class foodInfo(models.Model):
    food_id = models.AutoField(max_length=4)   #自定义主键,不指定主键默认会生成一个名为‘ID’列的主键
    food_name = models.CharField(max_length=10)
    food_content = models.CharField(max_length=100)
    food_price = models.FloatField()
    food_sort = models.ForeignKey(foodSorts)   #外键指向到foodSorts表中的主键
    food_unit = models.CharField(max_length=4)
 
    def __str__(self):
        return self.food_name
 
class foodSorts(models.Model):
    sort_name = models.CharField(max_length=10)
    sort_id = models.AutoField(max_length=4)
 
    def __str__(self):
        return self.sort_name
 
(2)操作外键读取数据
从foodInfo表中通过外键获取foodSorts表中的信息(数据关系是一对一):
a = foodInfo.objects.get(food_id=10)
a.foodSorts
a.foodSorts.sort_id
 
从foodSorts表中反向获取foodInfo表中的信息(数据关系是一对多):
b = foodSorts.objects.get(sort_id=4)
b.foodinfo_set.all()
属性名称foodinfo_set是由模型名称的小写(如foodInfo)加_set组成的。这里说一下,在ForeignKey函数中有一个参数related_name,如果设置了这个参数就可以不用_set的形式了,可以直接用related_name的值
 

最新文章

  1. FreeCodeCamp心得
  2. UWP 下拉刷新控件(PullToRefreshControl)
  3. 设置mysql utf8
  4. 真正的mybatis_redis二级缓存
  5. 记一次 Ubuntu 使用 arptables 抵御局域网 ARP 攻击
  6. CentOS 7 修改时区(转)
  7. 锋利的jQuery
  8. Linux 打包和压缩 方法详解
  9. 学习总结 for循环语句的应用
  10. HTML页面处理以及资源文件的加载
  11. iOS开发——面试笔试精华(四)
  12. 多目标遗传算法 ------ NSGA-II (部分源码解析)README 算法的部分英文解释
  13. Android SDK 和 Eclipse ADT 离线安装 教程
  14. PureMVC(JS版)源码解析
  15. python实现简单排序算法
  16. Linux下/proc目录的作用
  17. iOS 之 HTTPS集成实战应用
  18. Java 是值传递
  19. vue-cli less使用
  20. Dubbo学习笔记11:使用Dubbo中需要注意的一些事情

热门文章

  1. R和python语言如何求平均值,中位数和众数
  2. EasyUI treegrid 模糊查询、搜索
  3. redi集群测试
  4. Docker(十三)-Docker save and load镜像保存
  5. 简单的数据库备份语句--Oracle+SQLSERVER
  6. Linux基础学习(5)--文本编辑器Vim
  7. Linux基础学习(1)--Linux系统简介
  8. 使用 jstack 查询线程死锁错误日志 定位问题
  9. Java_常用工具类收集
  10. VMware vCenter 6.0 安装及群集配置介绍