Daw*_*wid 5 django django-models
问题是默认用户模型没有给字段提供一些非常有用的选项,例如unique = True到电子邮件字段.
我读到了这个问题:覆盖默认的用户模型方法,并检查了代理模型概念,但没有效果.
起初我尝试过:
from django.contrib.auth import models
class User(models.User):
class Meta:
proxy = True
email = EmailField('e-mail address', unique=True, blank=False)
Run Code Online (Sandbox Code Playgroud)
结果导致:
django.core.exceptions.FieldError: Proxy model 'User' contains model fields.
Run Code Online (Sandbox Code Playgroud)
接下来是:
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)
Run Code Online (Sandbox Code Playgroud)
而这个"解决方案"根本没有效果.默认用户模型的行为与以前相同.
我只对非猴子修补解决方案感兴趣.
编辑:好的.猴子修补对我来说是可以接受的,但是如何合理地做到这一点呢?(我的意思是不更改位于的文件/usr/pyshared/python2.6/...)
已经有人问过... 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。
我并不完全喜欢这种方法,也很欣赏你的出身,但有时你必须随波逐流。
| 归档时间: |
|
| 查看次数: |
8588 次 |
| 最近记录: |