Django外键问题

时间:2010-03-27 10:19:12

标签: python django django-models django-templates django-views

所有

我定义了以下模型,

  class header(models.Model):
     title = models.CharField(max_length = 255)
     created_by = models.CharField(max_length = 255)

     def __unicode__(self):
       return self.id()

 class criteria(models.Model):
     details =   models.CharField(max_length = 255)
     headerid = models.ForeignKey(header)

     def __unicode__(self):
       return self.id()

 class options(models.Model):
     opt_details =   models.CharField(max_length = 255)
     headerid = models.ForeignKey(header)

     def __unicode__(self):
       return self.id()

在我的观点中我有

           p= header(title=name,created_by=id)
           p.save()

现在数据将保存到标题表。我的问题是,在标题表中生成的这个id如何将数据保存到条件和选项表中。请让我知道..

谢谢..

2 个答案:

答案 0 :(得分:3)

鉴于你:

p= header(title=name,created_by=id)
p.save()

您现在可以:

c=criteria(details='some details', headerid=p)
c.save()
o=options(opt_details='more details', headerid=p)
o.save()

希望这有帮助。

答案 1 :(得分:1)

利用<related>_set查询管理器,它比在单独的操作中构造和保存对象更清晰,更短。

h = header.objects.create(title=name,created_by=id)
c = h.criteria_set.create(details='some details')
o = h.options_set.create(opt_details='more details')

还有一些offtopic:请从大写字母开始输入类名,这样可以让代码更容易阅读。