首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django 'User‘object没有属性'user’

django 'User‘object没有属性'user’
EN

Stack Overflow用户
提问于 2016-06-01 16:20:28
回答 1查看 6.8K关注 0票数 3

在我的模型里我有一节课

代码语言:javascript
复制
class User(AbstractDateTime, AbstractBaseUser, PermissionsMixin, models.Model):

    email = models.EmailField(max_length=255, unique=True,blank=False,default='')
    first_name = models.CharField(max_length=255, blank=False,default='')
    last_name = models.CharField(max_length=255, blank=False,default='')
    merchant_id = models.CharField(max_length=255, blank=True,default='')
    customer_id = models.CharField(max_length=255, blank=True,default='')
    phone_number = models.CharField(max_length=255,blank=False,default='')
    zip_code = models.CharField(max_length=10,blank=False,default='')
    photo = models.FileField(upload_to='images/users', default=None, blank=True, null=True)
    STATUS_TYPES = (('admin', 'admin'),('client', 'client'))
    role = models.CharField(max_length=10,choices=STATUS_TYPES,default='client')
    reset_key = models.CharField(max_length=255, blank=True,default='')
    credits = models.DecimalField(max_digits=5, decimal_places=2,default=0)
    is_staff = models.BooleanField(default=0)
    is_active = models.BooleanField(default=1)
    objects = AuthUserManager()
    USERNAME_FIELD = 'email'


    def last_seen(self):
        return cache.get('seen_%s' % self.user.email)

    def online(self):
        if self.last_seen():
            now = datetime.datetime.now()
            if now > self.last_seen() + datetime.timedelta(
                         seconds=settings.USER_ONLINE_TIMEOUT):
                return False
            else:
                return True
        else:
            return False

    def get_full_name(self):
        full_name = '%s %s' % (self.first_name, self.last_name)
        return full_name.strip()

    def get_short_name(self):
        return self.first_name

    def __unicode__(self):
        return unicode(self.email) or 'not found'



    class Meta:
        ordering = ["id"]
        db_table = "user"
        get_latest_by = "created"

在我看来,我尝试调用我的模型的在线方法

代码语言:javascript
复制
users = User.objects.filter()
for user in users:
    user.online()

我得到这个错误'User‘对象没有属性'user’

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-01 16:24:45

您的函数last_seen有一个bug。你做的self.user.email是不正确的,它应该是self.email

而且,执行User.objects.filter()也不是很好的实践,因为filter用于使用诸如sql WHERE这样的条件进行查找。如果您想要所有的结果,请执行User.objects.all()

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37573999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档