Django 多表关联 存储 使用方法详解 ManyToManyField save


Posted in Python onAugust 09, 2019

当models中使用ManyToManyField进行多表关联的时候,需要使用字段的add()方法来增加关联关系的一条记录,让两个实例关联起来才能顺利保存关联关系

#models.py 问题分类question_category和类别使用了多对多关系(先不管是否合理)
#coding:utf-8
from django.db import models

# Create your models here.

class QuestionCategory(models.Model):
 category_name = models.CharField('问题分类',max_length=50)

 def __unicode__(self):
 return self.category_name


class Question(models.Model):
 question_category = models.ManyToManyField(QuestionCategory,verbose_name="归属分类")
 question_title = models.CharField('标题', max_length=50)
 question_author = models.ForeignKey('auth.User', blank=True, null=True,verbose_name='作者')
 question_keywords = models.CharField('关键词',max_length=20)
 question_date = models.DateTimeField('date published')
 question_text = models.CharField('正文内容', max_length=200)

 def __unicode__(self):
 return self.question_title
#QuestionCategory.objects.get生成一个类别实例
#request.POST从前端获取表单提交的数据后,凑到Question里面形成一个问题实例
#先把问题实例存好,再在问题实例的多对多关联字段question_category上添加关联对象joe这个类别实例,关联好之后再save第二遍,查看数据库里面关联关系就存好了
def ask_question(request):

 question_category_name = request.POST['radio']
 question_title = request.POST['question_title']
 question_keywords = request.POST['question_keywords']
 question_text = request.POST['question_content']
 question_date = datetime.datetime.now()
 question_author = request.user
 joe = QuestionCategory.objects.get(category_name=question_category_name)
 print joe
 qqqq = Question(question_title=question_title,question_keywords=question_keywords,question_date=question_date,question_text=question_text,question_author=question_author)
 qqqq.save()
 qqqq.question_category.add(joe)
 qqqq.save()

 return redirect('pythonnav:index')

django ManyToManyField多对多关系的实例详解:

以上这篇Django 多表关联 存储 使用方法详解 ManyToManyField save就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python制作企业邮箱的爆破脚本
Oct 05 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
基于Django与ajax之间的json传输方法
May 29 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
详解Python传入参数的几种方法
May 16 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
开启Django博客的RSS功能的实现方法
Feb 17 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
Python如何实现自带HTTP文件传输服务
Jul 08 Python
用python实现学生管理系统
Jul 24 Python
ORM Django 终端打印 SQL 语句实现解析
Aug 09 #Python
python实现读取excel文件中所有sheet操作示例
Aug 09 #Python
django ManyToManyField多对多关系的实例详解
Aug 09 #Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
Aug 09 #Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 #Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 #Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 #Python
You might like
生成php程序的php代码
2008/04/07 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
详解vue-cli3使用
2018/08/14 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
Vue侦测相关api的实现方法
2019/05/22 Javascript
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
python使用os模块的os.walk遍历文件夹示例
2014/01/27 Python
Python实现115网盘自动下载的方法
2014/09/30 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
Django更新models数据库结构步骤
2020/04/01 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
生日宴会主持词
2014/03/20 职场文书
保护环境倡议书100字
2014/05/19 职场文书
企业党员个人自我评价
2014/09/20 职场文书
银行业务授权委托书
2014/10/10 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
烈士陵园观后感
2015/06/08 职场文书
校园开放日新闻稿
2015/07/17 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
英语教学课后反思
2016/02/15 职场文书
Pygame Time时间控制的具体使用详解
2021/11/17 Python
关于Python中进度条的六个实用技巧分享
2022/04/05 Python