【问题标题】:TypeError at /admin/auth/user//admin/auth/user/ 处的类型错误
【发布时间】:2019-02-06 17:55:40
【问题描述】:

当我尝试从管理面板中删除用户时出现这样的错误

/admin/auth/user/ 处的类型错误 'bool' 对象不可调用

models.py

class PROFILE(models.Model):
kullanıcı = models.OneToOneField(User,on_delete=True)
birthday = models.DateField(verbose_name="Birthday",
                            blank=False,null=False)
gender   = models.CharField(max_length=15, blank=False,null=
                            False,choices=gender)
language = models.CharField(max_length=20, blank=False,null=False,
                            verbose_name="language",choices=languages)


def set_token(self):

    self.token = ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789') 
                                for i in range(15)])

def save(self, *args, **kwargs):
    super(PROFILE, self).save(*args, **kwargs)
    self.set_token()

class Meta:

    verbose_name_plural = 'PROFILE'
    ordering= ["id"]

def __str__(self):
    return "{}".format(self.kullanıcı.username)



class Q(models.Model):
   author  = models.ForeignKey(User, on_delete=models.CASCADE)
   ... class Meta, __str__ ....

首先“kullanıcı”是“用户”,但由于 django 冲突的可能性,我进行了更改。但是我还是有这个问题

/admin/auth/user/ 处的类型错误 'bool' 对象不可调用 请求方法:POST 请求网址:http://192.168.1.34:8000/admin/auth/user/ Django 版本:2.1 异常类型:TypeError 异常值:
'bool' 对象不可调用 异常位置:/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/db/models/deletion.py 在collect,第221行 Python 可执行文件:/home/mete/Masaüstü/ask/venv/bin/python Python版本:3.6.5 Python 路径:
['/home/mete/Masaüstü/ask/ask', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages'] 服务器时间:Cum, 31 Ağu 2018 16:35:51 +0000

>

追溯: 内部文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/core/handlers/exception.py” 34. 响应 = get_response(请求) _get_response 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/core/handlers/base.py” 126. 响应 = self.process_exception_by_middleware(e,请求) _get_response 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/core/handlers/base.py” 124.响应=wrapped_callback(请求,*callback_args,**callback_kwargs) 包装器中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/options.py” 607. return self.admin_site.admin_view(view)(*args, **kwargs) _wrapped_view 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/utils/decorators.py” 142. 响应 = view_func(请求,*args,**kwargs) _wrapped_view_func 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/views/decorators/cache.py” 44. response = view_func(request, *args, **kwargs) 内部文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/sites.py” 223. 返回视图(请求,*args,**kwargs) _wrapper 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/utils/decorators.py” 45. return bound_method(*args, **kwargs) _wrapped_view 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/utils/decorators.py” 142. 响应 = view_func(请求,*args,**kwargs) changelist_view 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/options.py” 1711. 响应 = self.response_action(请求,查询集=cl.get_queryset(请求)) response_action 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/options.py” 1411. 响应 = 函数(自我,请求,查询集) delete_selected 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/actions.py” 28.deletable_objects,model_count,perms_needed,protected = modeladmin.get_deleted_objects(查询集,请求)> get_deleted_objects 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/options.py” 1833. 返回 get_deleted_objects(objs,请求,self.admin_site) get_deleted_objects 中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/utils.py” 134.collector.collect(对象) 收集中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/contrib/admin/utils.py” 197. return super().collect(objs, source_attr=source_attr, **kwargs) 收集中的文件“/home/mete/Masaüstü/ask/venv/lib/python3.6/site-packages/django/db/models/deletion.py” 221. field.remote_field.on_delete(self, field, sub_objs, self.using)

异常类型:/admin/auth/user/ 处的 TypeError 异常值:'bool' 对象不可调用

【问题讨论】:

  • 错误的堆栈跟踪可能会有所帮助。你能补充一下吗?
  • 您是否运行了迁移数据库中的列名更改?
  • @mete eroğlu 您是否扩展了User 模式?你有什么添加到admin.py 的吗?
  • @SachinKukreja 是的,我又试了一次,迁移没有错误
  • @JPG 我无法理解第一个问题。我以管理员身份尝试。我还将模型保存在 django.site.register(model)

标签: django django-models django-admin django-queryset


【解决方案1】:

问题出在 Profile 模型的 on_delete 参数中。

on_delete 参数不应布尔 值。 on_delete 的可能值可在此处找到,Related Field- on_delete

因此,将您的 PROFILE 更改为,

class PROFILE(models.Model):
    kullanıcı = models.OneToOneField(User,on_delete=models.CASCADE)
    .... other fields

【讨论】:

  • 感谢您所做的一切。其实怎么可能。我以为是真的 'on_delete=True' 我学错了
  • 您可以在我在回答中附加的链接中阅读更多相关信息,
  • 是的,你是对的。实际上我在第二个模型中使用了真值。但我认为他们是一样的。我必须更加小心。再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 1970-01-01
相关资源
最近更新 更多