2017-09-14 1 views
1

Djangoのインポートモデル

"/usr/local/lib/python2.7/dist-packages". 

ファイルの魔女は、私はそれがインポートするとき、それはそうtable_class_corespondanceと呼ばれるモデルが含まれています。 Djangoは知っているだろう

class Meta: 
    managed = False 
    db_table = 'USERS' 
    app_label = "banner_manager" 

ように、そのアプリが参照この表になります: は今ユーザークラス定義で、私は私が書くのフィールドを宣言した後。しかし残念ながら、このエラーはまだ表示されます:

RuntimeError: Model class table_class_corespondance.Users doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. 

私はそれを解決するために何ができるでしょうか?

答えて

0

メタ使用:

をモデルはINSTALLED_APPSにおけるアプリケーションの外に定義されている場合、それが属するAPP宣言しなければならない:

例:アプリケーション名がmusic

ある場合
app_label: 'music' 

今、

モデルのデータベーステーブル名は、モデルのapp label(manage.py startappで使用した名前)を、モデルのクラス名にアンダースコアを付けて結合します。

例:アプリmusicがモデルにAlbum

db_table = 'music_album' 

を持っている場合、これはどのようにメタ作品です。

完全な例:

class Meta: 
    managed = False 
    app_label = "myapp" 
    db_table = 'myapp_model' 

今、あなたはちょうどあなたが何をしているかを把握します。

希望は役立ちます。

+0

事は、このテーブルが別のデータベースに属していることです。データベースへの接続はsettings.pyの 'default'にfolowing構造を持っています:{ 'ENGINE': 'django.db.backends。 MySQLの ' 'NAME':database_name_1、 'USER':USER_NAME、 'PASSWORD':パスワード、 'ホスト':ホスト、 'PORT':ポート、 }、 'ユーザ':{ ' ENGINE ':' django.db.backends。mysqlの」、 'NAME':database_name_2、 'USER':USER_NAME、 'PASSWORD':パスワード、 'ホスト':ホスト、 'PORT':ポート、 }モデルのユーザーは、ユーザーのデータベースに接続されます – Unknown

0

事は、このテーブルは、データベースへの接続がsettings.pyにfolowing構造を有しているwhich.The別のデータベースに属していることである:

'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': database_name_1, 
     'USER': user_name, 
     'PASSWORD': password, 
     'HOST': host, 
     'PORT': port, 
    }, 

    'users': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': database_name_2, 
     'USER': user_name, 
     'PASSWORD':password, 
     'HOST': host, 
     'PORT': port, 

}モデルのユーザーどのように「ユーザー」データベースのショーに接続されますdb_tableが見えるはずですか?お返事ありがとう

関連する問題