【发布时间】:2010-12-27 18:28:38
【问题描述】:
这是我以前的(但意识到你显然不能按这个顺序做:
class MasterAdmin(models.Model):
"""
A permanent admin (one per Account) that shouldn't be deleted.
"""
admin = models.OneToOneField(AccountAdmin)
class Account(models.Model):
"""
A top-level account in the system.
"""
masteradmin = models.OneToOneField(MasterAdmin)
class AccountAdmin(models.Model):
"""
An Account admin that can be deleted. This includes limited permissions.
"""
account = models.ForeignKey(Account)
我想你可以从这个例子中看出我想要做什么。我想要一个 MasterAccountAdmin,它共享来自 AccountAdmin 的属性。目的是我想让人们能够删除 AccountAdmin,而不是 MasterAccountAdmin。我不想只在 AccountAdmin 上有一个名为“master = models.BooleanField()”的属性。
显然,这个示例不起作用,因为 MasterAdmin 在创建之前引用了 AccountAdmin,但我想展示我想要实现的目标。我是不是想错了?
【问题讨论】:
-
-1:问题标题很差。你能把标题改成你真正的问题吗?也许是“我如何用循环引用定义三个模型”或描述问题的内容。
-
如果您在只关注代码之前阅读了问题,这是一个不错的标题。我不是在问如何在技术上实现我的代码状态。我在问什么是编写模型的好方法(相对于我的方法)以实现我想要实现的高级目标。
标签: python django django-models foreign-keys one-to-one