请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

嵌入式天空

 找回密码
 我要注册

扫一扫,访问微社区

最近看过此主题的会员

查看: 1566|回复: 0

13DjangoAdmin数据关联

[复制链接]

344

主题

468

帖子

3963

积分

管理员

我是一个程序员

Rank: 9Rank: 9Rank: 9

积分
3963
发表于 2017-9-13 14:30:40 | 显示全部楼层 |阅读模式
数据模型关联
在很多时候数据模型之间有一些联系,比如外键。

在embsky app中再创建几个模型
lzy@embsky:/home/zyli/test/python/django/adminProject$ vim embsky/models.py
添加两个数据模型如下:
class Teacher(models.Model) :
    name = models.CharField(
max_length=32)
    age = models.IntegerField()
    job_num = models.IntegerField()

    def __str__(self):
        return str(self.name) + " " + str(self.age) + " " + str(self.job_num)

class Salary(models.Model) :
    job_num = models.ForeignKey(Teacher)                #把Teacher模型中的主键作为Salary表的外键
    s1 = models.FloatField()
    s2 = models.FloatField()

   
def __str__(self):
        return str(self.job_num) + " " + str(self.s1 + self.s2)
        
注意:什么是外键Teacher表中的主键在Salary表中就是外键。
              外键的作用是什么当向Salary表中插入数据的时候,只有job_num在Treacher表中的记录存在时候才能正常插入。
              当把Teacher表中的记录删除时,该记录对应的Salary表中的数据也会被删除。
        
注册数据模型
lzy@embsky:/home/zyli/test/python/django/adminProject$ vim embsky/admin.py
from django.contrib import admin
from embsky.models import Student
from embsky.models import Teacher
from embsky.models import Salary
admin.site.register([Student, Teacher, Salary])


同步数据库
lzy@embsky:/home/zyli/test/python/django/adminProject$ python3 manage.py makemigrations
lzy@embsky:/home/zyli/test/python/django/adminProject$ python3 manage.py migrate

测试
a.png





最近很忙
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EBMSKY Inc. ( 冀ICP备17022971号-1  

GMT+8, 2019-7-23 18:13 , Processed in 0.078720 second(s), 37 queries .

Powered by Discuz! X3.2

© 2014-2018 Comsenz Inc. 【嵌入式天空】设计

快速回复 返回顶部 返回列表