下面这个例子是 人员表和任务表,人员表和任务表是一对多的,但是这里有 分配任务的人 和 接受任务的人,所以这里就要用到 一对多 多外键
下面是 models.py 的代码及例子
class Person(models.Model):
name = models.CharField(max_length=50)
class Task(models.Model):
assign = models.ForeignKey(Person,related_name='assign')
accept = models.ForeignKey(Person,related_name='accept')
#use
>>> Person.objects.create(name='a')
<Person: Person object>
>>> Person.objects.create(name='b')
<Person: Person object>
>>> Person.objects.create(name='c')
<Person: Person object>
>>> Person.objects.create(name='d')
<Person: Person object>
>>> Task.objects.create(assign_id=1,accept_id=2)
<Task: Task object>
>>> Task.objects.create(assign_id=1,accept_id=3)
<Task: Task object>
>>> Task.objects.create(assign_id=1,accept_id=4)
<Task: Task object>
>>> Task.objects.create(assign_id=2,accept_id=3)
<Task: Task object>
>>> Task.objects.create(assign_id=2,accept_id=4)
<Task: Task object>
>>> Person.objects.get(name='b').assign.all()
[<Task: Task object>, <Task: Task object>]
>>> Person.objects.get(name='b').accept.all()
[<Task: Task object>]
>>> Task.objects.get(pk=1).assign.name
u'a'
>>> Task.objects.get(pk=1).accept.name
u'b'
Last modified by vkill on2011/05/30 09:42
下面是 models.py 的代码及例子
class Person(models.Model):
name = models.CharField(max_length=50)
class Task(models.Model):
assign = models.ForeignKey(Person,related_name='assign')
accept = models.ForeignKey(Person,related_name='accept')
#use
>>> Person.objects.create(name='a')
<Person: Person object>
>>> Person.objects.create(name='b')
<Person: Person object>
>>> Person.objects.create(name='c')
<Person: Person object>
>>> Person.objects.create(name='d')
<Person: Person object>
>>> Task.objects.create(assign_id=1,accept_id=2)
<Task: Task object>
>>> Task.objects.create(assign_id=1,accept_id=3)
<Task: Task object>
>>> Task.objects.create(assign_id=1,accept_id=4)
<Task: Task object>
>>> Task.objects.create(assign_id=2,accept_id=3)
<Task: Task object>
>>> Task.objects.create(assign_id=2,accept_id=4)
<Task: Task object>
>>> Person.objects.get(name='b').assign.all()
[<Task: Task object>, <Task: Task object>]
>>> Person.objects.get(name='b').accept.all()
[<Task: Task object>]
>>> Task.objects.get(pk=1).assign.name
u'a'
>>> Task.objects.get(pk=1).accept.name
u'b'
Last modified by vkill on2011/05/30 09:42
网友评论(0):


