我在Python 3.2.3上使用Django 1.5。AttributeError:'經理'對象沒有屬性'get_by_natural_key'
當我運行python3 manage.py syncdb
,它建立的數據庫表,&詢問我的電子郵件(定義爲唯一的,而不是用戶名),然後當我輸入的是,我得到這個錯誤 -
AttributeError: 'Manager' object has no attribute 'get_by_natural_key'
奇怪的是,它無論如何創建表,但現在,我很困惑,因爲我真的沒有得到我應該做的。該文件說我應該創建一個Custom User Manager,但這就是真正的說法。它並沒有給我一個線索在哪裏創造它或如何。我查看了docs on Managers,但那真的沒有幫我弄清楚什麼。這太模糊了。我一直在努力尋找一些線索去尋找我需要做的事情,但我只是爲了越來越多的問題而不是任何答案而瘋了。這是我的models.py文件:
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
class MyUsr(AbstractBaseUser):
email = models.EmailField(unique=True,db_index=True)
fname = models.CharField(max_length=255,blank=True, null=True)
surname = models.CharField(max_length=255,blank=True, null=True)
pwd_try_count = models.PositiveSmallIntegerField(blank=True, null=True)
pwd_last_try = models.DateTimeField(blank=True, null=True)
resetid = models.CharField(max_length=100,blank=True, null=True)
last_reset = models.DateTimeField(blank=True, null=True)
activation_code = models.CharField(max_length=100,blank=True, null=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['fname','activation_code']
如何編寫自定義用戶管理器?作爲一種方法,我是否將其放入MyUsr模型中?或者,即使我應該做什麼?我應該做一些完全不同的事情嗎?這一點我不確定。我只是不明白。關於這方面的文件似乎並不清楚,爲解釋留下了很多空缺。我對Django相當陌生,但我已經進入Python數月。
謝謝!這個問題讓我一陣悶悶不樂。無論我在哪裏看都找不到線索。 – Zamphatta 2013-05-15 00:05:38
如果直接子類UserManager,則已經實現了這些方法! https://docs.djangoproject.com/zh/dev/ref/contrib/auth/#manager-methods – Caumons 2013-08-06 23:01:29
@Caumons你的評論是非常有幫助的!謝謝;) – Erwan 2014-05-20 15:02:15