django: db - many to one
models 模块中的对象有三种对应关系:多对一,多对多,一对一。本讲说明多对一关系。
blog/models.py:
- from django.db import models
- class Employee(models.Model):
- name = models.CharField(max_length=20) # map 'name' field to db
- def __unicode__(self):
- return self.name
- class Entry(models.Model):
- name = models.CharField(max_length=20)
- def __unicode__(self):
- return self.name
- class Blog(models.Model):
- name = models.CharField(max_length=20)
- entry = models.ForeignKey(Entry) # Many-To-One Map: Blogs - Entry
- def __unicode__(self):
- return self.name
Debug 查看使用方式:
- [root@bogon csvt03]# ipython manage.py shell
- reload ipy_profile_none
- reload ipy_user_conf
- Python 2.7. (default, Oct , ::)
- Type "copyright", "credits" or "license" for more information.
- IPython 0.8. -- An enhanced Interactive Python.
- ? -> Introduction and overview of IPython's features.
- %quickref -> Quick reference.
- help -> Python's own help system.
- object? -> Details about 'object'. ?object also works, ?? prints more.
- In []:
- In []: from blog.models import Entry , Blog
- In []: Entry.objects.all()
- Out[]: [<Entry: eli>, <Entry: wu>, <Entry: min>]
- In []: Blog.objects.all()
- Out[]: []
- In []: blog=Blog(name='blog',entry=Entry.objects.all()[])
- In []: blog
- Out[]: <Blog: blog>
- In []: blog.save()
- In []: blog2=Blog(name='blog2',entry=Entry.objects.all()[])
- In []: blog2.save()
- In []: blog3=Blog(name='blog3',entry=Entry.objects.all()[])
- In []: blog3.save()
MySQL 结果:
- mysql> select * from blog_entry;
- +----+------+
- | id | name |
- +----+------+
- | | eli |
- | | wu |
- | | min |
- +----+------+
- rows in set (0.00 sec)
- mysql> select * from blog_blog;
- +----+-------+----------+
- | id | name | entry_id |
- +----+-------+----------+
- | | blog | |
- | | blog2 | |
- | | blog3 | |
- +----+-------+----------+
- rows in set (0.00 sec)
django: db - many to one的更多相关文章
- 在django项目外,使用django.db链接数据库(postgres)
要用python链接到数据库,又不想写太多代码.想到了django,就偷懒了下.用django.db直连. django版本:1.6.5 (1.5以后可以用以下代码) #coding=utf-8 __ ...
- django - from django.db.models import F - class F
F() 的执行不经过 python解释器,不经过本机内存,是生成 SQL语句的执行. # Tintin filed a news story! reporter = Reporters.objects ...
- Django db relationship
# coding=utf-8 from django.db import models """ Django数据库关系: 一对一关系:OneToOneField 多对多关 ...
- django: db - display
本讲介绍数据在页面中的呈现,内容很简单,就是嵌套循环在模板中的使用. 一,修改 csvt03/urls.py: from django.conf.urls import patterns, inclu ...
- django: db - admin
本讲演示简单使用 Django Admin 功能. 一,修改 settings.py,添加 admin 应用: INSTALLED_APPS = ( 'django.contrib.auth', 'd ...
- django: db howto - 2
继 django: db howto - 1 : 一 操作数据库的三种方式: [root@bogon csvt03]# python2.7 manage.py shell Python 2.7.5 ( ...
- django: db howto - 1
以在 Django 中使用 MySQL 为例,首先要安装 MySQL 和 MySQL-python 组件,确保 python 能执行 import MySQLdb. MySQL 中创建数据库: [ro ...
- django.db.utils.OperationalError: 1050解决方案
manage.py migrate时进行同步数据库时出现问题;django.db.utils.OperationalError: (1050, "Table '表名' already exi ...
- 报错django.db.migrations.exceptions.InconsistentMigrationHistory
Pycharm强大的功能总是让我很是着迷,比如它的makemigrations 和 migrate. 然而某一次,当我再次敲下这熟悉的命令时,它报错了.... Traceback (most rece ...
随机推荐
- TreeView 数据绑定及选中命令处理
昨天接近下班,一个群里面的网友,问treeView绑定后 选中命令怎么来处理,怎么没有效果,而且用MVVM的方式来写:快下班了本来想远程帮他看下,结果就说写个Demo给他看:再加上选中传参: 下面分 ...
- (转)Eclipse快捷键大全,导包快捷键:ctrl+Shift+/
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...
- THINK PHP U的用法
public function index(){ //$db=new \Think\Model(); //$db=M('msg'); //$result=$db->query("sel ...
- bat 小工具
@echo ************************************************************************:start@echo offset /p ...
- JQUERY1.9学习笔记 之层级选择器(四)
下一个邻居选择器(“prev ~ siblings”) 描述:选择所有"prev"后的邻居选择器,他们有相同的父节点. 注意:prev + next 与 prev ~ siblin ...
- 关于多本小说站的SEO—从”易读中文网”获得的心得体会
从目前国内的网站流量来说,电影站,小说站,游戏站等的流量占总流量的比例还是很高的,许多站长把目光投入到了这几个方面,本文就着重来说对于小说站,尤其是多本小说站的SEO心得体会! 对于小说站来说,只要排 ...
- C语言+ODBC+SQL 操作(向SQL里面添加数据)
为了节省时间,我就引用上一节的数据库的表和C语言的结构体数组,在结构体数组中添加数据,清空数据库数据. 第一步查询:SQLBindParameter函数的用法. SQLRETURN SQLBindPa ...
- iOS中定时器NSTimer的使用-备用
1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...
- 配置android开发环境eclipse获取ADT获取不到
在安装完Android SDK后eclipse要获取ADT, 可是由于GFW的存在, eclipse经常无法从http://dl-ssl.google.com/android/eclipse 获取到任 ...
- Android 常用对话框Dialog封装
Android 6种 常用对话框Dialog封装 包括: 消息对话框.警示(含确认.取消)对话框.单选对话框. 复选对话框.列表对话框.自定义视图(含确认.取消)对话框 分别如下图所示: ...