如PEP8所述,应该用camelcase命名有几个单词的类(例如ProfileAttributeGroup
),并用下划线表示变量(profile_attribute_group
)。你知道吗
然而,当涉及到django和反向关系(以及模板)时,我们不得不使用小写的类名。你知道吗
例如,如果我们的ProfileAttributeGroup
对Profile
模型有一对一的键,那么反向查找将是profile.profileattributegroup
。你知道吗
好的,我们可以重写这个;但是这种小写也发生在DetailView
和UpdateView
模板以及sql连接(例如someattr.filter(profileattributegroup__isnull=False)
)中,对此我们无能为力。你知道吗
这让我觉得只将外键名称小写,而不在其中添加任何下划线是有意义的。这样我就不必记住什么时候使用profile_attribute_group
或profileattributegroup
。你知道吗
但明确忽略下划线与PEP8相矛盾。你知道吗
我的问题是,还有人对我有怀疑吗?如果忽略我没有考虑过的下划线,将来会有什么坏处吗?你知道吗
如果这件事让你那么困扰的话,你当然可以做些什么。所有自动定义反向关系的关系字段也允许您通过指定
related_name
来覆盖默认值。如果你真的不喜欢profile.profileattributegroup
,用related_name='profile_attribute_group'
定义一对一字段。你知道吗相关问题 更多 >
编程相关推荐