2012-11-22 85 views
2

我有一个漂亮的愚蠢的关于Django中模型命名约定的问题。Django模型命名约定

想象一下建有房间的农庄。

农庄 - >建筑 - >客房

随着农庄它是好的,让我们把它叫做Farmstead。下一个:BuildingFarmsteadBuildingBuildingRoom,RoomFarmsteadBuildingRoom

回答

5

如果所有的Room实例属于Building(并没有另一种像Apartment模型)和所有实例的Building属于Farmstead(以下同样的想法),所以只需使用的名字你型号如Farmstead,BuildingRoom。没有必要指定业务逻辑中已经指定的内容。

+1

然后另一个类似的问题:如果我创建一个通用应用程序,我可以命名文章所在的“Article”和“Category”之类的模型吗?还是我需要命名为“ArticleCategory”? – aemdy

+3

在大多数情况下,我更喜欢'Category'。例如,如果您正在创建“博客”应用,则“类别”和“文章”是博客中的模型。如果你有另一种'类别',也许这个逻辑可能是另一个应用程序的一部分,而不是博客。因此,在这种情况下,如果您要在同一个python模块中导入这两个类,可以简单地使用'from blog import Category'和'from anotherapp import Category as AnotherAppCategory'。希望能帮助到你! –

0

根据代码中其他部分的结构,可以使用Django应用程序的名称,包或模块来进一步限定名称的范围。