2013-11-01 3 views
0

У меня есть модель Thread and Post.django, создать два связанных экземпляра модели

Сообщения имеет ForeignKey к (Тема имеет много сообщений)
Темы имеет OneToOneKey к Post (нить имеет один специальный пост)

После форм представления сообщения, я создаю тему и сообщение объект.

t = Thread.objects.create() 
p = Post.objects.create(thread=t) 

t.special_post = p 
t.save() 

Есть ли способ обеспечить ограничение (нить должна иметь special_post, пост должен иметь резьбу) в уровне БД в Джанго?

+0

'null = False' и' blank = False' в модели должны это делать. – Rohan

ответ

0

Одним из возможных способов является использование multi-table inheritance Джанго модели class.It выглядит как нормальный наследует класс питона, но он устанавливает связь один-к-одному между Thread и Post автоматически:

class Thread(models.Model): 
    ... 

class Post(Thread): 
    ... 

После изменения, может быть, вам нужно делать манипуляции только с помощью модели Post, вы можете получить доступ к потоку на post_instance.thread.

Смежные вопросы