当我尝试在管理面板中删除模型时,出现此错误。 我找不到问题所在。
/ admin / account / cloud / 1 / delete /
中的TypeError'bool'对象不可调用
django:1.10.6
postgres:9.5.6
操作系统:Ubuntu服务器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如何成为“bool”,如果obj = cloud-object?
答案 0 :(得分:4)
因为根据您的模型定义,obj.delete
是BooleanField
而不是default delete
method。您可能希望为该字段指定其他名称,例如is_deleted
。
答案 1 :(得分:0)
在Django 2上,当您有一个带有ForeignKey的模型并在其中设置on_delete=True
时,也会发生此问题。参见docs