Python 3.2.3 で Django 1.5 を使用しています。
を実行するpython3 manage.py syncdb
と、DB テーブルが作成され、電子メール (ユーザー名ではなく一意として定義) が要求され、それを入力すると、このエラーが発生します -
AttributeError: 'Manager' object has no attribute 'get_by_natural_key'
奇妙なことに、とにかくテーブルを作成しますが、今、私は混乱しています。ドキュメントには、Custom User Managerを作成する必要があると書かれていますが、実際にはそれだけです。どこでどのように作成すればよいかわかりません。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 には数か月間携わっています。