2016-04-04 10 views
0

モデル内のすべてのテーブルを管理するために私のWebにDjango Adminを実装しました。私は、(編集、レコードの追加、削除のために)プライマリキーのないランダムなテーブルを見ようとするまで、正しく動作しています。このテーブルにアクセスしようとすると、フィールドリストのメッセージ未知の列xxx.idが表示されます。Django Adminはプライマリキーなしでテーブルをレンダリングできません

私はDjangoがプライマリキーのないテーブルにIDフィールドを追加していることを知っています。 私のために何ができますか? list_fieldにidフィールドを表示する必要があるのであれば私は気にしませんが、Djangoに警告するとこのフィールドは存在しません。 私はこれを解決するためのユニークな値を定義できますか(PKを持っていないテーブルではなく、ユニークなものです...)

モデルのクラスのランダムなフィールドにプライマリキープロパティを追加しようとしました問題。それは働いていますが、私はフィールドに制限を設ける必要はありません。このPKを追加すると、この値を他のレコードで繰り返すことはできません。

どうすればこの問題を解決できますか?

答えて

1

問題のモデルを変更した場合は、移行する必要があります。 (manage.pyファイルがどこか)、プロジェクトのルートディレクトリに次に入力し

$ python manage.py makemigrations 

を入力

$ python manage.py migrate 

それはあなたがモデルにモデルフィールドを追加したことかもしれないが、それはまだデータベースにありません管理者で編集しようとするとこのエラーが発生します。 Djangoは、あなたのモデルの主キーを定義していないので、id列を自動的に追加しようとしましたようにthis questionthis oneに基づいて

UPDATE

、それが聞こえます。そのidがデータベースに伝播していない可能性があります。したがって、いや

+0

...今、あなたはあなたの管理者ページをリロードしてみてくださいそして、

ストレートデータベーステーブルに
mysql> ALTER TABLE your_table_name ADD id integer AUTO_INCREMENT NOT NULL PRIMARY KEY FIRST; mysql> exit; 

を列を追加することができます

$ python manage.py dbshell 

を試してみてください、私はそれをやったし、問題はまだ起こっています。外部キーと関連したもので、主キーがありませんか? radomフィールドにランダムプライマリキーを追加した場合、問題は解決されます。 –

+0

上記のアップデートを参照してください。 –

+0

もう一度Ryanに感謝します...それは働きます...私は覚えている、冬眠とエンティティはあなたに同じ力を強制します。表をクラスにマップする場合は、主キーが必要です。すばらしいです!! –

関連する問題