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求斐波那契数列示例分享
Feb 14 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
10个Python小技巧你值得拥有
Sep 29 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
Dec 10 Python
python3使用matplotlib绘制条形图
Mar 25 Python
Python3实现定时任务的四种方式
Jun 03 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
Pycharm小白级简单使用教程
Jan 08 Python
什么是Python包的循环导入
Sep 08 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
使用python对excel表格处理的一些小功能
Jan 25 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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
全文搜索和替换
2006/10/09 PHP
PHP个人网站架设连环讲(一)
2006/10/09 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
Thinkphp整合微信支付功能
2016/12/14 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
2018/02/08 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
利用python画一颗心的方法示例
2017/01/31 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
UNIX文件系统分类
2014/11/11 面试题
心理健康心得体会
2014/01/02 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
毕业生欢送会主持词
2014/03/31 职场文书
高考诚信考试承诺书
2015/04/29 职场文书
初二数学教学反思
2016/02/17 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL