Django命名日期约定

时间:2010-09-21 10:47:00

标签: django naming-conventions

Django中是否有“创建”和“最后编辑”日期的命名约定?

即。在Symfony Framework中,此字段默认命名:

  • created_at
  • 的updated_at

5 个答案:

答案 0 :(得分:10)

事实上,据我所知,Django没有规范惯例,但我真的很喜欢Rails惯例:

  • created_at日期时间字段
  • created_on日期字段

created适用于创建日期,但只要您有更多不明确的字段(例如activated),就会出现问题。它是布尔值还是日期/日期时间?存在命名约定以帮助开发人员更快地理解代码,并且通过不重要的决策浪费更少的时间。这就是Convention over Configuration范式背后的哲学,这在Rails社区中很重要,但不幸的是在Django中没有那么多。我提到的这种混淆是典型的,这就是为什么我更喜欢永远清楚:

  • 如果是布尔值is_activated
  • 如果是日期时间activated_at
  • 如果只是约会activated_on

我听说有人说“你不应该把字段名称和数据类型混合在一起”,但在我看来这似乎是一个相当空洞的提示,我从来没有听到任何具体论据。如果我们想要优化代码可读性和决策制定,那么我认为明确的命名约定是最佳选择。

答案 1 :(得分:1)

我更喜欢createdupdated而没有_at后缀。我不知道命名字段的任何“规范”偏好。

对于它的价值,我认为 Rails使用created_at / created_onupdated_at / updated_on

答案 2 :(得分:1)

在Django原型模型中,此字段基于模型类型命名,即

  • auth.User:date_joined
  • comments.Comment:submit_date

所以我们应该遵循这个惯例。

答案 3 :(得分:1)

我不认为在Django中有类似规范方式命名这类内容的东西。有些部分被PEP8很好地覆盖,主要是因为这种事情是超出范围的Django,因为它更多的是风格问题(也许是房屋惯例)。

那就是说,我认为将这些字段命名为created_atupdated_at是很常见的,我在编写自己的代码时会亲自遵循这个惯例。我建议避免使用createdupdated之类的名称,因为它们含糊不清(尽管一些流行的libs使用这种风格):它们是布尔值还是别的? is_created / is_updated,如果您需要,可以选择更好。

答案 4 :(得分:0)

Django Model Utils为此提供了一个模型混合,将它们命名为createdmodified-我建议使用它们的模型混合来轻松地标准化您的模型和项目。