Перевод оригинальной статьи на 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'), )
Пред. | Уровень выше | След. |
Как читать эту книгу | Начало | Глава 2. Начинаем |
0 comments | Make a comment