4

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 には数か月間携わっています。

4

1 に答える 1