Skip to content

Latest commit

 

History

History
135 lines (109 loc) · 4.76 KB

codestyle.md

File metadata and controls

135 lines (109 loc) · 4.76 KB

Общие правила

  1. Придерживаемся black style

  2. При создание файлов придерживаться нижнего подчеркивания:

    так плохо: performancemediareview.py

    так хорошо: performance_media_review.py

  3. f-строки предпочтительнее функции или выражений форматирования:
    Т.е. так плохо

    def __str__(self):
        return "{} {}".format(self.name, self.type)

    Так хорошо

    def __str__(self):
         return f"{self.name} - {self.type}"
  4. По возможности используем кортежи вместо списков. Кортеж - неизменяемый объект. Вот тут про различия Т.е. так не нужно

    filterset_fields = ["year"]
    

    Лучше так

    filterset_fields = ("year",)
    

Правила для моделей

  1. Если хотя бы одно одно описание поля не помещается на одну строку, то для всех атрибутов полей используйте выделенную строку.
    T.e так плохо
    first_field = models.ForeignKey(Person, on_delete=models.PROTECT)
    second_field = models.CharField(
        max_length=200,
        unique=True,
    )
    Так хорошо
    first_field = models.ForeignKey(
        Person,
        on_delete=models.PROTECT,
    )
    second_field = models.CharField(
        max_length=200,
        unique=True,
    )
  2. У модели всегда должен присутствовать метод __str__
  3. У каждой модели должно быть verbose_name и verbose_name_plural
  4. Если модель сортируемая и у нее есть поле, отвечающее за сортировку, такое поле должно иметь имя order и verbose_name - Порядок

Правила для регистрации моделей в админке

  1. Для регистрации моделей в админке используем декоратор (документация)
    T.e так плохо
    from django.contrib import admin
    from .models import Author
    
    
    class AuthorAdmin(admin.ModelAdmin):
        pass
    
    admin.site.register(Author, AuthorAdmin)
    Так хорошо
    from django.contrib import admin
    from .models import Author
    
    
    @admin.register(Author)
    class AuthorAdmin(admin.ModelAdmin):
        pass

Правила регистрации вычисляемых свойств на списке объектов в админке

  1. При добавлении вычисляемых полей используем декоратор (документация)
    T.e так плохо
    def countable_field(self, obj):
        return True
    
    countable_field.short_description = "Поле"
    Так хорошо
    @admin.display(
        boolean=True,
        ordering='-publish_date',
        description='Поле',
    )
    def countable_field(self, obj):
        return True

Правило для получения настроек из settings

  1. Для получения глобальных настроек из settings к полям обращаемся через сам settings
    T.e так плохо
    from config.settings.base import MAILJET_TEMPLATE_ID_PLAY
    
    message.template_id = MAILJET_TEMPLATE_ID_QUESTION
    Так хорошо
    from django.conf import settings
    
    message.template_id = settings.MAILJET_TEMPLATE_ID_QUESTION

Правило для создания новых настроек в settings

  1. При добавлении, изменении или удалении данных через миграцию, её имя должно начинаться с data, а общее название должно быть такого вида "00XX_data_..." T.e так плохо
    "migrations/0016_additional_email_settings.py"
    Так хорошо
    "migrations/0016_data_additional_email_settings.py"