models 模块中的对象有三种对应关系:多对一,多对多,一对一。本讲说明多对一关系。

blog/models.py:

  1. from django.db import models
  2.  
  3. class Employee(models.Model):
  4. name = models.CharField(max_length=20) # map 'name' field to db
  5.  
  6. def __unicode__(self):
  7. return self.name
  8.  
  9. class Entry(models.Model):
  10. name = models.CharField(max_length=20)
  11.  
  12. def __unicode__(self):
  13. return self.name
  14.  
  15. class Blog(models.Model):
  16. name = models.CharField(max_length=20)
  17. entry = models.ForeignKey(Entry) # Many-To-One Map: Blogs - Entry
  18.  
  19. def __unicode__(self):
  20. return self.name

Debug 查看使用方式:

  1. [root@bogon csvt03]# ipython manage.py shell
  2. reload ipy_profile_none
  3. reload ipy_user_conf
  4. Python 2.7. (default, Oct , ::)
  5. Type "copyright", "credits" or "license" for more information.
  6.  
  7. IPython 0.8. -- An enhanced Interactive Python.
  8. ? -> Introduction and overview of IPython's features.
  9. %quickref -> Quick reference.
  10. help -> Python's own help system.
  11. object? -> Details about 'object'. ?object also works, ?? prints more.
  12.  
  13. In []:
  14.  
  15. In []: from blog.models import Entry , Blog
  16.  
  17. In []: Entry.objects.all()
  18. Out[]: [<Entry: eli>, <Entry: wu>, <Entry: min>]
  19.  
  20. In []: Blog.objects.all()
  21. Out[]: []
  22.  
  23. In []: blog=Blog(name='blog',entry=Entry.objects.all()[])
  24.  
  25. In []: blog
  26. Out[]: <Blog: blog>
  27.  
  28. In []: blog.save()
  29.  
  30. In []: blog2=Blog(name='blog2',entry=Entry.objects.all()[])
  31.  
  32. In []: blog2.save()
  33.  
  34. In []: blog3=Blog(name='blog3',entry=Entry.objects.all()[])
  35.  
  36. In []: blog3.save()

MySQL 结果:

  1. mysql> select * from blog_entry;
  2. +----+------+
  3. | id | name |
  4. +----+------+
  5. | | eli |
  6. | | wu |
  7. | | min |
  8. +----+------+
  9. rows in set (0.00 sec)
  10.  
  11. mysql> select * from blog_blog;
  12. +----+-------+----------+
  13. | id | name | entry_id |
  14. +----+-------+----------+
  15. | | blog | |
  16. | | blog2 | |
  17. | | blog3 | |
  18. +----+-------+----------+
  19. rows in set (0.00 sec)

django: db - many to one的更多相关文章

  1. 在django项目外,使用django.db链接数据库(postgres)

    要用python链接到数据库,又不想写太多代码.想到了django,就偷懒了下.用django.db直连. django版本:1.6.5 (1.5以后可以用以下代码) #coding=utf-8 __ ...

  2. django - from django.db.models import F - class F

    F() 的执行不经过 python解释器,不经过本机内存,是生成 SQL语句的执行. # Tintin filed a news story! reporter = Reporters.objects ...

  3. Django db relationship

    # coding=utf-8 from django.db import models """ Django数据库关系: 一对一关系:OneToOneField 多对多关 ...

  4. django: db - display

    本讲介绍数据在页面中的呈现,内容很简单,就是嵌套循环在模板中的使用. 一,修改 csvt03/urls.py: from django.conf.urls import patterns, inclu ...

  5. django: db - admin

    本讲演示简单使用 Django Admin 功能. 一,修改 settings.py,添加 admin 应用: INSTALLED_APPS = ( 'django.contrib.auth', 'd ...

  6. django: db howto - 2

    继 django: db howto - 1 : 一 操作数据库的三种方式: [root@bogon csvt03]# python2.7 manage.py shell Python 2.7.5 ( ...

  7. django: db howto - 1

    以在 Django 中使用 MySQL 为例,首先要安装 MySQL 和 MySQL-python 组件,确保 python 能执行 import MySQLdb. MySQL 中创建数据库: [ro ...

  8. django.db.utils.OperationalError: 1050解决方案

    manage.py migrate时进行同步数据库时出现问题;django.db.utils.OperationalError: (1050, "Table '表名' already exi ...

  9. 报错django.db.migrations.exceptions.InconsistentMigrationHistory

    Pycharm强大的功能总是让我很是着迷,比如它的makemigrations 和 migrate. 然而某一次,当我再次敲下这熟悉的命令时,它报错了.... Traceback (most rece ...

随机推荐

  1. TreeView 数据绑定及选中命令处理

    昨天接近下班,一个群里面的网友,问treeView绑定后  选中命令怎么来处理,怎么没有效果,而且用MVVM的方式来写:快下班了本来想远程帮他看下,结果就说写个Demo给他看:再加上选中传参: 下面分 ...

  2. (转)Eclipse快捷键大全,导包快捷键:ctrl+Shift+/

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...

  3. THINK PHP U的用法

    public function index(){ //$db=new \Think\Model(); //$db=M('msg'); //$result=$db->query("sel ...

  4. bat 小工具

    @echo ************************************************************************:start@echo offset /p ...

  5. JQUERY1.9学习笔记 之层级选择器(四)

    下一个邻居选择器(“prev ~ siblings”) 描述:选择所有"prev"后的邻居选择器,他们有相同的父节点. 注意:prev + next 与 prev ~ siblin ...

  6. 关于多本小说站的SEO—从”易读中文网”获得的心得体会

    从目前国内的网站流量来说,电影站,小说站,游戏站等的流量占总流量的比例还是很高的,许多站长把目光投入到了这几个方面,本文就着重来说对于小说站,尤其是多本小说站的SEO心得体会! 对于小说站来说,只要排 ...

  7. C语言+ODBC+SQL 操作(向SQL里面添加数据)

    为了节省时间,我就引用上一节的数据库的表和C语言的结构体数组,在结构体数组中添加数据,清空数据库数据. 第一步查询:SQLBindParameter函数的用法. SQLRETURN SQLBindPa ...

  8. iOS中定时器NSTimer的使用-备用

    1.初始化 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelect ...

  9. 配置android开发环境eclipse获取ADT获取不到

    在安装完Android SDK后eclipse要获取ADT, 可是由于GFW的存在, eclipse经常无法从http://dl-ssl.google.com/android/eclipse 获取到任 ...

  10. Android 常用对话框Dialog封装

    Android 6种 常用对话框Dialog封装 包括: 消息对话框.警示(含确认.取消)对话框.单选对话框. 复选对话框.列表对话框.自定义视图(含确认.取消)对话框 分别如下图所示:       ...