万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    CustomUserでハマる Django 1.6.4

    Django 1.5 の紹介 - Ian Lewis

    Djago 1.5からの機能だが、 例えば、myappのmodels.pyにCustomUserなどで、

    from django.contrib.auth.models import AbstractUser
    class CustomUser(AbstractUser):
        # いろいろ

    みたいに定義しておけば、

    settings.py

    AUTH_USER_MODEL = 'myapp.CustomUser'

    にこのように指定して設定しておけば、それが認証で使われるようだ。

    models.pyには、 全て、Userからsettings.AUTH_USER_MODELに書き換えた。

    しかし、syncdbでテーブルを作るときに

    CommandError: One or more models did not validate:
    audiofield.audiofile: 'user' defines a relation with the model 'auth.User', which has been swapped out. Update the relation to point at settings.AUTH_USER_MODEL.

    のようなエラーが出てしまった。

    自分が、音楽のアップロードに使うaudiofieldのモジュールを使っているからかもしれない。 AudioFieldを使うのだがそれが裏で使っているのかも?

    python - Django 1.6 AbstractUser m2m models validation error - Stack Overflow のように先ほどのAbstractUserをAbstractBaseUserに変えろとある。

    from django.contrib.auth.models import AbstractBaseUser
    class CustomUser(AbstractBaseUser):
        pass

    にした。 syncdbすると その次は、

    AttributeError: type object 'CustomUser' has no attribute 'USERNAME_FIELD'

    のエラー。