我实现了一个大致如下的自定义用户模型:
class User(AbstractBaseUser):
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['username']
id = models.IntegerField(DjangoUser, primary_key=True, null=False)
username = models.CharField(max_length=20, unique=True, db_index=True, null=False)
flag = models.PointField(srid=4326, geography=True, null=True)
# objects = models.GeoManager()
def __unicode__(self):
return self.username
作为一项要求,我需要继续支持对flag字段的查询(只有objects = models.GeoManager()
才可以)。我了解到,通过创建扩展AbstractBaseUser
的新用户模型,我需要创建一个扩展CustomUserManager
的新UserManager。
使用自定义UserManager时,有没有办法保留GeoManager
提供的功能?
我为缺乏适当的术语而道歉。这是我的第一个django应用程序。随意填写我本可以使用的术语。
答案 0 :(得分:1)
为什么不创建从GeoManager继承的CustomUserManager类并在那里添加所需的用户相关功能:
class CustomUserManager(GeoManager):
def create_user(self, ...):
...
class User(AbstactBaseUser):
...
objects = CustomUserManager()