跳到内容

django-model-without-dunder-str (DJ008)

源自 flake8-django linter。

作用

检查 Django 模型中是否定义了 __str__ 方法。

为什么这不好?

Django 模型应该定义一个 __str__ 方法来返回模型实例的字符串表示,因为 Django 会调用此方法以在 Django Admin 和其他地方显示对象。

没有 __str__ 方法的模型将在 Django Admin 中显示对象的无意义表示。

示例

from django.db import models


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

建议改为

from django.db import models


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

    def __str__(self):
        return f"{self.field}"