跳到内容

django-unordered-body-content-in-model (DJ012)

源自 flake8-django linter。

作用

检查 Model 内部类、方法和字段的顺序是否符合 Django Style Guide

为什么这不好?

Django Style Guide 规定 Model 内部类、属性和方法的顺序应如下所示:

  1. 所有数据库字段
  2. 自定义管理器属性
  3. class Meta
  4. def __str__()
  5. def save()
  6. def get_absolute_url()
  7. 任何自定义方法

示例

from django.db import models


class StrBeforeFieldModel(models.Model):
    class Meta:
        verbose_name = "test"
        verbose_name_plural = "tests"

    def __str__(self):
        return "foobar"

    first_name = models.CharField(max_length=32)
    last_name = models.CharField(max_length=40)

建议改为

from django.db import models


class StrBeforeFieldModel(models.Model):
    first_name = models.CharField(max_length=32)
    last_name = models.CharField(max_length=40)

    class Meta:
        verbose_name = "test"
        verbose_name_plural = "tests"

    def __str__(self):
        return "foobar"