django - 强调外键 - 利弊

时间:2016-12-22 17:26:24

标签: python django pep8

正如PEP8所述,人们应该将具有多个单词的类命名为camelcase(例如ProfileAttributeGroup),并使用下划线表示变量(profile_attribute_group)。

然而,当谈到django和反向关系(和模板)时,我们被迫使用小写的类名。

例如,如果我们的ProfileAttributeGroup具有Profile模型的一对一密钥,则反向查找将为profile.profileattributegroup

好的,我们可以覆盖那一个;但是这种小写也发生在DetailViewUpdateView模板以及sql连接中(例如someattr.filter(profileattributegroup__isnull=False)),我们无能为力。

这让我觉得只有小写的外键名称才有意义,而不会在那里添加任何下划线。这样我就不必记住何时使用profile_attribute_groupprofileattributegroup

但明确忽略下划线与PEP8相矛盾。

我的问题是,还有其他人对我有疑虑吗?是否有任何未来的缺点,忽略我没想到的下划线?

1 个答案:

答案 0 :(得分:0)

如果它困扰你那么肯定你可以做些什么。自动定义反向关系的所有关系字段也允许您通过指定related_name来覆盖该默认值。因此,如果您真的不喜欢profile.profileattributegroup,请使用related_name='profile_attribute_group'定义一对一字段。