Соглашения об именах Django для дат - PullRequest
6 голосов
/ 21 сентября 2010

Есть ли в Django какое-либо соглашение об именах для дат "создано" и "последнее редактирование"?

т.е.в Symfony Framework эти поля по умолчанию называются:

  • create_at
  • updated_at

Ответы [ 5 ]

10 голосов
/ 03 сентября 2014

Действительно, насколько я могу судить, для Django нет канонического соглашения, но мне действительно нравится соглашение Rails:

  • created_at для полей DateTime
  • created_onдля полей даты

created отлично работает для дат создания, но как только у вас появятся более неоднозначные поля, такие как activated, это станет проблемой.Это логическое значение или дата / время?Существуют соглашения об именах, которые помогают разработчикам быстрее понимать код и тратить меньше времени на неважные решения.Такова философия парадигмы Convention over Configuration , которая является большой в сообществе Rails, но, к сожалению, не такой большой в Django.Эта путаница, которую я упоминал, например, типична, и поэтому я предпочитаю всегда быть предельно ясной:

  • Если это логическое значение is_activated
  • Если это время и дата activated_at
  • Если это просто дата activated_on

Я слышал, как люди говорят, что "вы не должны смешивать имена полей с типами данных", но, на мой взгляд, это довольно пустой совети я никогда не слышал никаких конкретных аргументов за это.Если мы хотим оптимизировать читабельность кода и принятие решений, то я считаю, что явные соглашения об именах - это путь.

1 голос
/ 09 октября 2014

Я не думаю, что есть что-то вроде канонического способа именования таких вещей в Django.Некоторые части хорошо охвачены PEP8 , в основном потому, что такого рода вещи выходят за рамки Django, так как это гораздо больше вопрос стиля (и, возможно, условности дома).*

Тем не менее, я думаю, что довольно часто называть эти поля created_at и updated_at, и я лично следую этому соглашению при написании своего собственного кода.Я советую избегать имен типа created или updated, поскольку они неоднозначны (хотя некоторые популярные libs используют этот стиль): они логические или что-то еще?is_created / is_updated, если вам это нужно, лучше варианты.

1 голос
/ 21 сентября 2010

В исходных моделях Django эти поля именуются на основе типа модели, т. Е.

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

Так что, вероятно, мы должны следовать этому соглашению.

1 голос
/ 21 сентября 2010

Я предпочитаю created и updated без суффикса _at.Я не знаю каких-либо «канонических» предпочтений для именования полей.

Для чего оно стоит, я думаю, Rails использует created_at / created_on и updated_at / updated_on.

0 голосов
/ 14 сентября 2018

Django Model Utils имеет для этого модельный миксин, называя их created и modified - я рекомендую использовать их модельный миксин, чтобы легко стандартизировать ваши модели и проекты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...