3

モジュールのテストを作成しようとしています。私が実行すると:

python manage.py test my_module

メッセージが表示されます:

django.core.exceptions.ImproperlyConfigured: Please fill out the database NAME in the settings module before using the database.

ユーザー、グループを作成し、アクセス許可を割り当てる BaseTest だけです。

どこに問題があるのでしょうか? サーバーは正常に動作し、構成は良好なようです。テストの設定を定義する必要がありますか?


Ok。私は何が問題だったのか知っていると思います:]私は他のモジュールに保存された権限を持つリストを持っていました。だから私は書いていましたfrom module.perms import perms(通常のpythonリスト)。そのpythonは、そのリストを他のモジュールから私のモジュールにインポートするだけではありません。そして、それが失敗の原因でした。

解決策: リスト定義の後のコードを次のように囲みます。

if __name__ == "__main__":
   ...

その後、すべてがうまく機能するはずです。

4

4 に答える 4

1

Ok。私は何が問題だったのか知っていると思います:]私は他のモジュールに保存された権限を持つリストを持っていました。だから私はmodule.perms import perms(通常のpythonリスト)から書いていました。そのpythonは、そのリストを他のモジュールから私のモジュールにインポートするだけではありません。そして、それが失敗の原因でした。

解決策: リスト定義の後のコードを次のように囲みます。

if __name__ == "__main__":
   ...

その後、すべてがうまく機能するはずです。

于 2013-02-01T11:01:02.897 に答える
0

あなたはsettings.pyでデータベース設定を行う必要があり、あなたのアプリはインストールされたアプリにある必要があります。例えば:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'database.sqlite',
于 2013-01-29T10:49:22.523 に答える
0

python manage.py testNAMEsettings.py で定義されたデータベースを使用しませんDATABASESドキュメントから-

データベースを必要とするテスト (つまり、モデル テスト) では、「実際の」(本番) データベースは使用されません。テスト用に個別の空のデータベースが作成されます。

テストが成功するか失敗するかに関係なく、すべてのテストが実行されると、テスト データベースは破棄されます。

デフォルトでは、テスト データベースは、DATABASES で定義されたデータベースの NAME 設定の値に test_ を追加することによって名前を取得します。SQLite データベース エンジンを使用する場合、テストはデフォルトでインメモリ データベースを使用します (つまり、データベースはファイルシステムを完全にバイパスしてメモリ内に作成されます!)。別のデータベース名を使用する場合は、DATABASES の特定のデータベースのディクショナリで TEST_NAME を指定します。

あなたの質問に答えるために。TEST_NAME 設定でテストデータベースを定義できます。しかし、そうする必要はありません。

于 2013-01-29T11:33:00.560 に答える