问题是默认用户模型没有为字段提供一些非常有用的选项,例如 unique = True 到电子邮件字段。
我读过这个问题:Override default User model method,并检查Proxy Model概念,但没有效果。
起初我试过了:
from django.contrib.auth import models
class User(models.User):
class Meta:
proxy = True
email = EmailField('e-mail address', unique=True, blank=False)
导致:
django.core.exceptions.FieldError: Proxy model 'User' contains model fields.
接下来是:
from django.contrib.auth import models
class User(models.User):
class Meta:
proxy = True
models.User.email = EmailField('e-mail address', unique=True, blank=False)
这个“解决方案”根本没有效果。默认用户模型的行为与以前相同。
我只对非猴子修补解决方案感兴趣。
编辑:好的。猴子修补对我来说是可以接受的,但是如何合理地做到这一点呢? (我的意思是不更改/usr/pyshared/python2.6/...
)
答案 0 :(得分:3)
这已经问过了...... How to make email field unique in model User from contrib.auth in Django
其他用户数据的django方法也在这里http://docs.djangoproject.com/en/dev/topics/auth/#auth-profiles。
我并不完全是这种方法的粉丝,并且非常感谢你来自哪里,但有时候你必须和牛群一起去。