auth.Users代理模型的经理

时间:2015-11-02 13:47:56

标签: python django python-3.x django-models

我有以下模型,它是auth.models.User的代理,我需要在管理界面中过滤活动用户,所以我继承了auth.models.UserManager并创建了一个新的管理器。

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible
from django.contrib import auth


class UserProxyManager(auth.models.UserManager):
    def get_queryset(self):
        return super(UserProxyManager,self).get_queryset().filter(is_active=True)

@python_2_unicode_compatible    
class UserProxy(auth.models.User):    
    objects = UserProxyManager
    class Meta:
        proxy = True
        verbose_name_plural = 'my_users'
        verbose_name = 'my_user'
    def __str__(self):
        return self.get_full_name()

现在我运行django shell并测试它并得到错误:

python manage.py shell

>>> UserProxy.objects.all()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
TypeError: all() missing 1 required positional argument: 'self'

我使用的是django 1.8.4和python 3.4

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:4)

objects = UserProxyManager() 应该是Manager的一个实例,而不是类本身。

String email = "test@gmal.com";
        boolean valid = false;
        for (int i=0;i<=email.length();i++) {
            if (email.charAt(i)== '@') {
                valid = true;
                break;
            } 
        }

        if (valid) {
            System.out.println("This is valid email Id");
        } else {
            System.out.println("This is an Invalid email Id");
        }