0

私はスレッドとポストモデルを持っています。

投稿にはスレッドへのforeignKeyがあります(スレッドには多くの投稿があります)
スレッドには投稿へのOneToOneKeyがあります(スレッドには1つの特別な投稿があります)

Post フォームの送信時に、Thread と Post オブジェクトを作成します。

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

t.special_post = p
t.save()

djangoのDBレベルで制約(スレッドにはspecial_postが必要、投稿にはスレッドが必要)を強制する方法はありますか?

4

1 に答える 1

0

考えられる方法の 1 つは、django モデル クラスの複数テーブル継承Threadを使用することです。通常の python クラスが継承するように見えますが、 と の間に1 対 1 の関係がPost自動的に確立されます。

class Thread(models.Model):
    ...

class Post(Thread):
    ...

変更後、Post モデルのみで操作を行う必要があるかもしれませんが、 でスレッドにアクセスできますpost_instance.thread

于 2013-11-01T09:16:01.263 に答える