Django如何关闭警告
Django how to turn off warning
我有一个特殊的用户模型,有自己的身份验证后端。 Django 关心我并发送通知很好,但我如何关闭一些警告,如下所示:
WARNINGS:
profile.User: (auth.W004) 'User.email' is named as the 'USERNAME_FIELD', but it is not unique.
HINT: Ensure that your authentication backend(s) can handle non-unique usernames.
我的用户模型:
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'))
site = models.ForeignKey(Site, verbose_name=_("Site"), null=True, blank=True)
class Meta:
unique_together = (
("email", "site", ),
)
警告是为了帮助您,所以大多数情况下最好改进您的代码以避免它们。
在这种情况下,您确实不想关闭该警告。如果您阅读警告,您会发现目前可以有两个不同的用户使用相同的用户名!
要解决此问题,您应该通过将 unique=True
添加到字段定义来使 email
字段唯一:
email = models.EmailField(unique=True)
在查看我自己的项目的设置文档时,我偶然发现了一个让我想起你的问题的设置。
从 Django 1.7 开始,有一个设置可以使某些警告静音。如果您使用的是 Django 1.7 或更高版本,您可以将错误代码添加到 SILENCED_SYSTEM_CHECKS
设置中:
# settings.py
SILENCED_SYSTEM_CHECKS = ["auth.W004"]
来源:https://docs.djangoproject.com/en/1.7/ref/settings/#silenced-system-checks
我有一个特殊的用户模型,有自己的身份验证后端。 Django 关心我并发送通知很好,但我如何关闭一些警告,如下所示:
WARNINGS:
profile.User: (auth.W004) 'User.email' is named as the 'USERNAME_FIELD', but it is not unique.
HINT: Ensure that your authentication backend(s) can handle non-unique usernames.
我的用户模型:
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(_('email address'))
site = models.ForeignKey(Site, verbose_name=_("Site"), null=True, blank=True)
class Meta:
unique_together = (
("email", "site", ),
)
警告是为了帮助您,所以大多数情况下最好改进您的代码以避免它们。
在这种情况下,您确实不想关闭该警告。如果您阅读警告,您会发现目前可以有两个不同的用户使用相同的用户名!
要解决此问题,您应该通过将 unique=True
添加到字段定义来使 email
字段唯一:
email = models.EmailField(unique=True)
在查看我自己的项目的设置文档时,我偶然发现了一个让我想起你的问题的设置。
从 Django 1.7 开始,有一个设置可以使某些警告静音。如果您使用的是 Django 1.7 或更高版本,您可以将错误代码添加到 SILENCED_SYSTEM_CHECKS
设置中:
# settings.py
SILENCED_SYSTEM_CHECKS = ["auth.W004"]
来源:https://docs.djangoproject.com/en/1.7/ref/settings/#silenced-system-checks