当我尝试在管理面板中删除模型时,出现此错误。 我找不到问题所在。
类型错误在/admin/account/cloud/1/delete/
"布尔"对象不可调用
-
管理网站
-
错误链接
姜戈:1.10.6
帖子:9.5.6
操作系统: 优班图服务器 16.04
有问题的模型:
class Cloud(models.Model):
NAME_CHOICE = (
('1', '1'),
('2', '2'),
('3', '3'),
('4', '4')
)
account = models.ForeignKey(Account, verbose_name='Аккаунт')
name = models.CharField(choices=NAME_CHOICE, verbose_name='Название', max_length=20, default=NAME_CHOICE[0][0])
username = models.CharField(verbose_name='Пользовательское название', max_length=100, null=True, blank=True)
active = models.BooleanField(verbose_name='Активный?', default=False)
params = JSONField(verbose_name='Параметры', null=True, blank=True)
delete = models.BooleanField(verbose_name='Удален?', default=False)
def __str__(self):
return 'ID: {}, облако: {}'.format(self.id, (self.username or '-'))
INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'account',
'api',
'cell',
'files',
'deploy_frontend',
'rest_framework',
# 'rest_framework_docs',
'rest_framework_swagger',
]
如果 obj = 云对象,obj 怎么可能是"布尔"?
因为根据模型定义而不是默认delete
方法,obj.delete
是BooleanField
。您可能希望为字段指定不同的名称,例如is_deleted
。
在 Django 2 中,当您的外键模型字段设置为on_delete=True
时,也会出现此问题。
将on_delete=True
交换为on_delete=models.CASCADE
或on_delete=models.PROTECT
或on_delete=models.SET_NULL
或on_delete=models.SET_DEFAULT
或on_delete=models.SET()
查看文档