Вопрос внешнего ключа Джанго - PullRequest
0 голосов
/ 27 марта 2010

All

у меня определена следующая модель,

  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()

Теперь данные будут сохранены в таблицу заголовков. Мой вопрос заключается в том, что для этого идентификатора, сгенерированного в таблице заголовков, как будут сохранены данные в таблице критериев и параметров ... Пожалуйста, дайте мне знать ..

Спасибо ..

Ответы [ 2 ]

3 голосов
/ 27 марта 2010

Учитывая ваш:

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 голос
/ 27 марта 2010

Воспользуйтесь <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')

И немного оффтопа: пожалуйста, начинайте имена классов с заглавной буквы, это действительно облегчает чтение кода.

...