5

カスタムの定義可能なユーザー モデルを使用できるようになった Django 1.5 で、プラグイン可能なアプリの回復力を高めようとしています。

モデルに外部キーを追加すると、次のことができます。

user = models.ForeignKey(settings.AUTH_USER_MODEL)

django.contrib.auth.models.Userこれにより、ファイルの上部にある User のインポートが保存され、ユーザーモデルではなくなったときに壊れます。しかし、テストするときは、ユーザーを作成できるようにする必要がある場合があります。

from django.conf import settings
from django.db.models import get_model
User = get_model(*settings.AUTH_USER_MODEL.split('.'))

次に、次のようなことができます。

User.objects.create(username="test")

テスト内 (一部のオブジェクトには FK がユーザーに関連付けられており、テストでそれらのオブジェクトの 1 つが必要です)。

特にエレガントだとは思いませんが、1.5 でこれを行うためのよりクリーンな方法は見当たりません。

ドキュメントで何かを見逃しましたか?

4

2 に答える 2

11

あなたがそれを行うことができる1つの方法は次のとおりです。

try:
    from django.contrib.auth import get_user_model
except ImportError: # django < 1.5
    from django.contrib.auth.models import User
else:
    User = get_user_model()
于 2013-05-23T20:49:33.403 に答える