您的位置:首页 > 编程语言 > Go语言

django: db - many to one

2013-10-09 22:53 316 查看
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.5 (default, Oct  9 2013, 22:06:47)
Type "copyright", "credits" or "license" for more information.

IPython 0.8.4 -- 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 [1]:

In [2]: from blog.models import  Entry , Blog

In [3]: Entry.objects.all()
Out[3]: [<Entry: eli>, <Entry: wu>, <Entry: min>]

In [4]: Blog.objects.all()
Out[4]: []

In [5]: blog=Blog(name='blog',entry=Entry.objects.all()[0])

In [6]: blog
Out[6]: <Blog: blog>

In [7]: blog.save()

In [8]: blog2=Blog(name='blog2',entry=Entry.objects.all()[1])

In [9]: blog2.save()

In [10]: blog3=Blog(name='blog3',entry=Entry.objects.all()[0])

In [11]: blog3.save()


MySQL 结果:

mysql> select * from blog_entry;
+----+------+
| id | name |
+----+------+
|  1 | eli  |
|  2 | wu   |
|  3 | min  |
+----+------+
3 rows in set (0.00 sec)

mysql> select * from blog_blog;
+----+-------+----------+
| id | name  | entry_id |
+----+-------+----------+
|  1 | blog  |        1 |
|  2 | blog2 |        2 |
|  3 | blog3 |        1 |
+----+-------+----------+
3 rows in set (0.00 sec)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: