“用户”对象没有属性“用户名”

ev

我有(AbstractBaseUserDjango 1.5的)用户模型,我使用电子邮件作为用户名进行身份验证,并具有以下ModelResourceAPI

class CartItemResource(ModelResource):
    product = fields.ForeignKey(CartItemRelatedResource, 'product', full=True)

    class Meta:
        queryset = CartItem.objects.all()
        resource_name = 'cart_item'
        excludes = ['creation_date', 'modification_date']
        allowed_methods = ['post', 'get', 'delete']
        authorization = CartAuthorization()
        authentication = SessionAuthentication()

当对API进行GET请求时,我得到:

“用户”对象没有属性“用户名”

编辑用户模型:

class User(AbstractBaseUser):
    objects = UserManager()
    name = models.CharField(max_length=100)
    email = models.EmailField(
        max_length=255,
        unique=True,
    )
    phone = models.IntegerField(max_length=10, null=True)
    is_admin = models.BooleanField(default=False, blank=True)
    is_driver = models.BooleanField(default=False, blank=True)
    lastOrderID = models.CharField(max_length=25, null=True)

    USERNAME_FIELD = 'email'
    #REQUIRED_FIELDS = ['name','phone']
    REQUIRED_FIELDS = ['name']

    def __unicode__(self):
        return self.user

    def set_phone(self, phone):
        self.phone = phone


class CartAuthorization(Authorization):

  def read_list(self, object_list, bundle): 
      return object_list.filter(cart__user = self.user(bundle), cart__id = bundle.request.GET.get('cart_id'))

我在相同的资源中还有另一个可以工作的POST:

def add_to_cart(self, request, **kwargs):
    self.method_check(request, allowed=['post'])
    self.is_authenticated(request)

追溯:

Traceback     (most recent call last):

  File "C:\Python27\lib\site-packages\tastypie\resources.py", line 195, in wrapper
    response = callback(request, *args, **kwargs)

  File "C:\Python27\lib\site-packages\tastypie\resources.py", line 426, in dispatch_list
    return self.dispatch('list', request, **kwargs)

  File "C:\Python27\lib\site-packages\tastypie\resources.py", line 454, in dispatch
    self.throttle_check(request)

  File "C:\Python27\lib\site-packages\tastypie\resources.py", line 551, in throttle_check
    identifier = self._meta.authentication.get_identifier(request)

  File "C:\Python27\lib\site-packages\tastypie\authentication.py", line 283, in get_identifier
    return getattr(request.user, username_field)

  File "C:\Python27\lib\site-packages\django\utils\functional.py", line 205, in inner
    return func(self._wrapped, *args)

AttributeError: 'User' object has no attribute 'username'
大田美子

当Django包依赖于类似Django 1.4的模型(其中User对象始终具有一个username字段)时,您很有可能会出现问题出在您自己的代码中,还是在第三方代码中,但问题没有足够的细节可以说明。

  • 使用完整的追溯来跟踪这些插件

  • 如果有修补程序包,请更新它们

  • 如果没有可用的修补程序,则需要自己对第三方代码进行分叉和修补

关于Django 1.5+用户模型:

https://docs.djangoproject.com/zh-CN/stable/topics/auth/customizing/#auth-custom-user

您应该最有可能id识别用户,而不是username

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的用户名没有保存

来自分类Dev

没有用户名的ls命令?

来自分类Dev

Rails验证用户名中没有空格

来自分类Dev

为什么用户名没有UID?

来自分类Dev

更改 UID 后没有用户名

来自分类Dev

树枝没有从控制器检索用户名?

来自分类Dev

Greendao 3、使users表没有重复的用户名

来自分类Dev

django“用户”对象没有属性“用户”

来自分类Dev

“用户”对象没有属性“用户”

来自分类Dev

用户名存储在连接的对象中

来自分类Dev

有没有办法获取当前用户的Docker Hub用户名?

来自分类Dev

有没有办法创建一个用户名为“admin”的用户?

来自分类Dev

用户名或用户名

来自分类Dev

没有用户名和密码的用户身份验证

来自分类Dev

我可以在Meteor中创建没有用户名或密码的用户吗?

来自分类Dev

现有SSH证书的用户名?

来自分类Dev

从Django中的用户名获取用户对象

来自分类Dev

通过用户名字段获取用户对象

来自分类Dev

通过用户名字段获取用户对象

来自分类Dev

用户名变更

来自分类Dev

显示用户名?

来自分类Dev

Django'用户对象没有属性META'

来自分类Dev

“消息”对象没有属性“用户”

来自分类Dev

尝试使用MODELS获取用户名,但出现此错误:尝试获取非对象的属性

来自分类Dev

根据一个属性,用户名从 List<MyUser> 获取 DISTINCT 对象

来自分类常见问题

有没有办法知道您当前在mysql中的用户名?

来自分类Dev

有没有办法将用户名从vscode推送到github?

来自分类Dev

有没有办法验证SVN中是否存在用户名?

来自分类Dev

有没有办法知道服务器的用户名?