Хостинг Django от «Джино»
Table of contents

Стиль исходного кода

Перевод оригинальной статьи на http://www.djangoproject.com/documentation/contributing/#coding-style.

Пожалуйста, следуйте следующим правилам при разработке своих приложений:

  • Если особо не оговорено иное, надо использовать стандарт PEP 8.

    Можно использовать утилиту аналогичную pep8.py для проверки исходного кода.

  • Для отступа следует использовать четыре пробела.

  • Пользуйтесь символами подчёркивания (_), а не выделениемРегистра при указании имён переменных, функций и методов (т.е., poll.get_unique_voters(), а не poll.getUniqueVoters()).

  • Используйте заглавные буквы в определении класса или функций, которые возвращают классы (например, InitialCaps).

  • Подготовьте все строки к переводу. За дополнительной информацией обратитесь к главе «Интернационализация».

  • В строках документации используйте «активные слова», например:

    def foo():
        """
        Calculates something and returns the result.
        """
        pass
    

    а не:

    def foo():
        """
        Calculate something and return the result.
        """
        pass
    

  • Не указывайте своё имя в коде. Политика Django предусматривает хранение имён авторов кода в файле AUTHORS.

Шаблоны

  • В шаблонах используйте только один пробел между фигурными скобками и содержимым тега.

    Делайте так:

    {{ foo }}
    

    а не так:

    {{foo}}
    

Представления

  • В представлениях первым параметром всегда должен быть request.

    Делайте так:

    def my_view(request, foo):
        # ...
    

    а не так:

    def my_view(req, foo):
        # ...
    

Модели

  • Имена полей должны определяться в нижнем регистре с использованием символа подчёркивания.

    Делайте так:

    class Person(models.Model):
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
    

    а не так:

    class Person(models.Model):
        FirstName = models.CharField(max_length=20)
        Last_Name = models.CharField(max_length=40)
    

  • Класс Meta должен описываться после определения полей, отделённый от них пустой строкой.

    Делайте так:

    class Person(models.Model):
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
    
        class Meta:
            verbose_name_plural = 'people'
    

    а не так:

    class Person(models.Model):
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
        class Meta:
            verbose_name_plural = 'people'
    

    и не так:

    class Person(models.Model):
        class Meta:
            verbose_name_plural = 'people'
    
        first_name = models.CharField(max_length=20)
        last_name = models.CharField(max_length=40)
    

  • Порядок внутренних классов модели и стандартных методов должен быть таким (ничто из нижеперечисленного не является обязательным):

    • Определение всех полей класса.

    • class Meta.

    • class Admin.

    • def __unicode__().

    • def __str__().

    • def save().

    • def get_absolute_url().

    • Любые свои методы.

  • Если для модели определена опция choices, определите выбор в виде кортежа кортежей, использовав заглавные буквы для его имени. Определение лучше помещать в начале файла с моделями или перед классом. Пример:

    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    


Ищем Python программистов

Found misprint?
Select it with the mouse and hit Enter
Ctrl-Enter
Processed:
33 1 199 25


The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!

We are glad to hear your questions, comments or suggestions!
(Open in new tab)

Users number: 601

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
ЯМ:41001223475816


© 2008-2012 Ruslan Popov @ gmail.com Powered by Django 1.2.5