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 相关文章推荐
介绍Python中内置的itertools模块
Apr 29 Python
python 创建弹出式菜单的实现代码
Jul 11 Python
shell命令行,一键创建 python 模板文件脚本方法
Mar 20 Python
python排序函数sort()与sorted()的区别
Sep 18 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
如何通过命令行进入python
Jul 06 Python
python实现数字炸弹游戏
Jul 17 Python
python爬虫基础之urllib的使用
Dec 31 Python
在Pycharm中安装Pandas库方法(简单易懂)
Feb 20 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留言本实例代码
2010/05/09 PHP
PHP计数器的实现代码
2013/06/08 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
Jquery EasyUI Datagrid右键菜单实现方法
2016/12/30 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
Typescript的三种运行方式(小结)
2019/09/18 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
js实现选项卡效果
2020/03/07 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
广告学专业毕业生自荐信
2013/09/24 职场文书
大学生求职简历的自我评价范文
2013/10/12 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
出纳员岗位责任制
2014/02/11 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
研究生导师推荐信
2015/03/25 职场文书
Mysql分析设计表主键为何不用uuid
2022/03/31 MySQL
分享python函数常见关键字
2022/04/26 Python