Какое предпочтительное соглашение об именах для классов модели Django?
Соглашение об именах модели Django
Ответ 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/...