跳到内容

django-nullable-model-string-field (DJ001)

源自 flake8-django linter。

作用

检查 Django 模型中基于字符串的可空字段(如 CharFieldTextField)。

为什么这不好?

如果一个基于字符串的字段是可空的,那么你的模型对于“无数据”将有两种可能的表示:None 和空字符串。 这可能会导致混淆,因为 API 的客户端在尝试确定字段是否包含数据时必须检查 None 和空字符串。

Django 的惯例是使用空字符串代替字符串字段的 None

示例

from django.db import models


class MyModel(models.Model):
    field = models.CharField(max_length=255, null=True)

建议改为

from django.db import models


class MyModel(models.Model):
    field = models.CharField(max_length=255, default="")