Неправильная форма числа ведёт к обманутым ожиданиям и ошибкам.


Пример 1

Плохо:


def download_image(images_urls, directory):
for image_url in images_urls:
    ...

Хорошо:


def download_images(images_urls, directory):
for image_url in images_urls:
    ...


Пример 2

Если related_name в ManyToManyField указан в единственном числе, то запросы с его участием будут выглядеть странно и неожиданно.

Плохо:


class Owner(models.Model):
full_name = models.CharField(
    'ФИО владельца',
    max_length=200,
)
flats = models.ManyToManyField(
    'Flat',
    'Квартиры в собственности',
    related_name='owner',
)
...

Хорошо:


class Owner(models.Model):
full_name = models.CharField(
    'ФИО владельца',
    max_length=200,
)
flats = models.ManyToManyField(
    'Flat',
    'Квартиры в собственности',
    related_name='owners',
)
...


Пример 3

С ForeignKey история аналогична той, что описана в примере выше. В единственном числе всегда указывается название класса, а вот запрос связанных объектов всегда вернёт коллекцию, даже если объект в ней всего один.

Плохо:


class Report(models.Model):
order = models.ForeignKey(
    'Order',
    verbose_name='Заказ',
    on_delete=models.PROTECT,
    related_name='report',
)
...

Хорошо:


class Report(models.Model):
order = models.ForeignKey(
    'Order',
    verbose_name='Заказ',
    on_delete=models.PROTECT,
    related_name='reports',
)
...