【发布时间】:2012-06-20 21:40:21
【问题描述】:
我不知道我是否正确地表达了这个问题。如果我应该将其称为其他名称,请随时发表评论。
但这就是我想要完成的,一些模型的层次结构如下:
Page <--- SubPage.1 <--- SubPage.1.1 <--- SubPage.1.1.1 ...
|__________| ^ ...and so on
| |-- SubPage.1.1.2 ...
|
tags #m2m or some other object
#with foreign key relation
其他一些属性:
- 子页面包含页面拥有的所有相同信息
- 所有指向 Page 的外键和 m2m 字段也适用于 SubPage
- 我希望能够快速访问父子页面和根页面,而不需要太多的 db hits
那么,坚持 DRY 理念的最佳方式是什么?
这就是我所拥有的:
class Page(models.Model):
....
class SubPage(Page):
parent = models.ForeignKey('self', related_name = 'subpage_set', blank = 'True')
root = models.ForeignKey(Page, related_name = 'rootpage_set')
我不喜欢这种方式,但有几个原因。 1) SubPage.root 是重复的,只是为了快速找到Page。 2)保存SubPage 对象也保存Page 对象,我想将它们分开。
感谢您的帮助,谢谢
【问题讨论】:
标签: django django-models foreign-keys dry