0

我有 Thread 和 Post 模型。

Post 有一个foreignKey to Thread(线程有很多帖子)
Thread 有一个OneToOneKey to Post(线程有一个特殊的帖子)

在提交 Post 表单后,我创建 Thread 和 Post 对象。

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

t.special_post = p
t.save()

有没有办法在 django 的 DB 级别强制执行约束(线程应该有一个 special_post,post 应该有一个线程)?

4

1 回答 1

0

一种可能的方法是使用django模型类的多表继承Thread。它看起来像普通的python类继承,但它自动建立了一对一的关系Post

class Thread(models.Model):
    ...

class Post(Thread):
    ...

更改后,可能您只需要使用 Post 模型进行操作,您可以通过post_instance.thread.

于 2013-11-01T09:16:01.263 回答