【问题标题】:django, create two related model instancesdjango,创建两个相关的模型实例
【发布时间】:2013-11-01 09:05:36
【问题描述】:

我有 Thread 和 Post 模型。

帖子有一个外键到线程(线程有很多帖子)
线程有一个 OneToOneKey 来发布(线程有一个特殊的帖子)

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

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

t.special_post = p
t.save()

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

【问题讨论】:

  • 模型中的 null=Falseblank=False 应该这样做。

标签: database django constraints


【解决方案1】:

一种可能的方法是使用django模型类的multi-table inheritance。它看起来像普通的python类继承但它自动在ThreadPost之间建立了一对一的关系:

class Thread(models.Model):
    ...

class Post(Thread):
    ...

更改后,可能只需要对 Post 模型进行操作,可以通过post_instance.thread 访问线程。

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2011-08-11
    • 2021-03-09
    相关资源
    最近更新 更多