抽象基管理器不是accessib

2024-04-25 23:48:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个新用户,但收到以下消息:

得到_ raise AttributeError(“无法通过%s实例”类型访问管理器 AttributeError:无法通过CompanyUser实例访问Manager

这就是我要做的:

  def obj_create(self, bundle, request=None, **kwargs):
    try:
        bundle = super(AccountCreateResource, self).obj_create(bundle)
        bundle.obj.set_password(bundle.data.get('password'))

        bundle.obj.objects.create_user()
    except IntegrityError:
        raise BadRequest('Username already exists')

我应该能找到经理。这是我的模型:

^{pr2}$

Tags: 实例用户selfobj消息类型管理器def
2条回答

你没有显示足够的代码或回溯来理解到底发生了什么,但是无论如何:你得到的错误消息意味着你试图从一个实例访问管理器,这是不允许的,句点-你有一个抽象模型的事实是完全不相干的。您必须从模型类本身访问管理器。希望这只是一个用type(instance).objects取代instance.objects的问题。在

真的不清楚你想在这里做什么。导致错误的这一行毫无意义:

bundle.obj.objects.create_user()

由于您还没有提供bundle的代码,所以我不得不猜测这是一个带有objForeignKey的模型,它指向CompanyUser(不过,命名约定相当奇怪)。但正如错误所说,不能对实例调用objects,只能在类上调用。但是即使可以,这行代码仍然没有意义:obj已经是用户了,那么为什么要创建一个用户呢?再说一遍,create_user至少需要一个email参数,您没有提供这个参数。在

相关问题 更多 >