管理站点中的django删除模型 - 'bool'对象不可调用

时间:2017-03-23 06:23:05

标签: python django

当我尝试在管理面板中删除模型时,出现此错误。 我找不到问题所在。

  

/ 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?

2 个答案:

答案 0 :(得分:4)

因为根据您的模型定义,obj.deleteBooleanField而不是default delete method。您可能希望为该字段指定其他名称,例如is_deleted

答案 1 :(得分:0)

在Django 2上,当您有一个带有ForeignKey的模型并在其中设置on_delete=True时,也会发生此问题。参见docs