django foreignkey(外键)的实现


Posted in Python onJuly 29, 2019

foreignkey是一种关联字段,将两张表进行关联的方式,我们在dodels.py里写入要生成的两张表:

class Usergroup(models.Model):
  uid=models.AutoField(primary_key=True)
  caption=models.CharField(max_length=64,null=True)
  ctime=models.DateField(auto_now_add=True,null=True)
  uptime=models.DateField(auto_now=True,null=True)
class Userinfo(models.Model):
  username=models.CharField(max_length=32,blank=True)
  password=models.FileField(max_length=60,help_text='pwd')
  email=models.CharField(max_length=60)
  test=models.EmailField(max_length=20,null=True,error_messages={'invalid':'shurumima'})
  user_group=models.ForeignKey('Usergroup',to_field='uid',default=1)  #这里与上面的Usergroup表的uid进行关联,默认取到uid=1的行)
  user_type_choices=(
    (1,'superuser'),
    (2,'commonuser'),
    (3,'com-commonuser'),
  )
  user_type_id=models.IntegerField(choices=user_type_choices,default=1)

运行下面两条命令:

C:\Users\Liujiangbu.GLOBALE.001\PycharmProjects\untitled3>python manage.py makemigrations
C:\Users\Liujiangbu.GLOBALE.001\PycharmProjects\untitled3>python manage.py migrate

编辑app项目的views.py加入下面两段:

def user_info(request):
  if request.method == "GET":
    #userlist = test.objects.all()
    userlist2=models.Userinfo.objects.all()  #获取Userinfo表的所有信息

    # return render(request,'userinfo.html',{'userlist':userlist})
    return render(request, 'userinfo.html', {'userlist2': userlist2})   #模板引用
  elif request.method == "POST":
    u = request.POST.get('user')
    pp= request.POST.get('pwd')
    #test.objects.create(username=u,depno=pp)
    models.Userinfo.objects.create(username=u,password=pp,user_group_id=1)
    return HttpResponse("<p>注册成功</p>")

模板中创建userinfo.html,并加入下面内容:

django foreignkey(外键)的实现

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>666666(runoob.com)</title>
</head>
<body style="background-color:silver">
<div>
  <div style="color:#00FF00">
    <a class="menu" href="/home-bak" rel="external nofollow" >是爷们儿就点下 </a>
   <br /> <a class="menu" href="/group" rel="external nofollow" >是爷们儿就??点下 </a>
  </div>
  <div style="color:#666644">
    <h3>添加主机</h3>
    <form method="POST" action="/userinfo">
       <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">
      <input type="text" name="user">
      <input type="text" name="pwd">
      <input type="submit" name="添加">
    </form>
    <h3>主机列表</h3>
    <ul>
      {% for i in userlist2 %}
        <li><a href="/datail" rel="external nofollow" >{{ i.username }}</a>
        <span>{{ i.user_group.caption }}</span>
        </li>
      {% endfor %}
    </ul>
  </div>
</div>
</body>
</html>

然后添加url:

django foreignkey(外键)的实现

执行项目:

django foreignkey(外键)的实现

在空白处写入内容,会自动添加到数据库中:

django foreignkey(外键)的实现

表中的DBA就是通过外键关联获取到了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3.5仿微软计算器程序
Mar 30 Python
Python3.6简单操作Mysql数据库
Sep 12 Python
Python实现全排列的打印
Aug 18 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
Aug 07 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
Python re.sub 反向引用的实现
Jul 07 Python
Python开发五子棋小游戏
May 02 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 Python
python基础之//、/与%的区别详解
Jun 10 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 Python
python实现翻转棋游戏(othello)
Jul 29 #Python
Django如何将URL映射到视图
Jul 29 #Python
python3获取当前目录的实现方法
Jul 29 #Python
Python在Matplotlib图中显示中文字体的操作方法
Jul 29 #Python
Django框架创建mysql连接与使用示例
Jul 29 #Python
python使用minimax算法实现五子棋
Jul 29 #Python
浅析python 中大括号中括号小括号的区分
Jul 29 #Python
You might like
php不用正则验证真假身份证
2013/11/06 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
Python调用C++程序的方法详解
2017/01/24 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
python nmap实现端口扫描器教程
2020/05/28 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
数据库方面面试题
2012/04/22 面试题
介绍一下Linux文件的记录形式
2012/04/18 面试题
洗手间标语
2014/06/23 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
公司宣传语大全
2015/07/13 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript