Подтвердить что ты не робот

Соглашение об именах модели Django

Какое предпочтительное соглашение об именах для классов модели Django?

4b9b3361

Ответ 1

Модели Django - это просто классы Python, поэтому применяются соглашения об именах Python, подробно описанные в PEP-8.

Например:

  • Person
  • Категория
  • ZipCode

Если Django не может правильно присвоить имя класса при создании соответствующей таблицы, вы можете легко переопределить плюрализацию, установив собственное поле verbose_name_plural во внутреннем классе META. Например:

class Story(models.Model):
    ...

    class Meta:
        verbose_name_plural = "stories"

Ответ 2

Насколько я знаю, идея состоит в том, что имя класса должно быть сингулярным и должно использовать SentenceCase без пробелов. Таким образом, у вас будут такие имена, как:

Person
TelephoneNumber

Затем администратор Django знает, как их плюрализовать. Не работает так хорошо для имен вроде:

Category

который получает множественное число как категории, но там мы идем...

Кроме того, просто дайте ему имя, которое что-то значит для вас, и кратко суммирует то, что должен представлять класс.

Бен

Ответ 3

Кроме того, когда вам нужны связанные объекты для модели из более чем одного слова, вы можете использовать атрибут _set. Пример:

class ProcessRoom(models.Model):
...
    plant = models.ForeignKey("Plant", verbose_name='planta', on_delete=models.CASCADE)

Тогда связанные объекты будут:

plant = Plant.object.get(id=1)
process_rooms = plant.processroom_set.all

Ответ 4

В большинстве языков программирования люди предпочитают давать единичные имена объектам, потому что эти модели также представлены таблицами в вашей системе баз данных. Минимализм - хороший выбор каждый раз, чтобы избежать некоторых значимых конфликтов в будущем.

В качестве примера; fooobar.com/info/10898/...