Ошибочная форма числа
Анти-паттерн
Неправильная форма числа ведёт к обманутым ожиданиям и ошибкам.
Пример 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',
)
...