我有Thread和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的数据库级别强制执行约束(线程应该有一个special_post,post应该有一个线程)?
答案 0 :(得分:0)
一种可能的方法是使用django模型类的multi-table inheritance。它看起来像普通的python类继承,但它自动建立Thread
和Post
之间的一对一关系:< / p>
class Thread(models.Model):
...
class Post(Thread):
...
更改后,您可能只需要使用Post模型进行操作,您可以通过post_instance.thread
访问线程。