[解決済み] 関連するすべての Django モデルオブジェクトを取得する
2023-02-05 15:13:44
質問
あるオブジェクトを指す ForeignKey を持つすべてのモデルオブジェクトのリストを取得するにはどうしたらよいでしょうか? (DELETE CASCADE前のDjango管理画面での削除確認ページのようなもの)。
私は、データベース内の重複するオブジェクトをマージする一般的な方法を考え出そうとしています。 基本的には、オブジェクト "B" への ForeignKeys ポイントを持つすべてのオブジェクトを、オブジェクト "A" へのポイントに更新したいので、その後、重要なものを失うことなく "B" を削除することが可能です。
助けてくれてありがとうございます。
どのように解決するのですか?
Django <= 1.7
これで、関連する全てのオブジェクトのプロパティ名を知ることができます。
links = [rel.get_accessor_name() for rel in a._meta.get_all_related_objects()]
そして、以下のような方法で関連するオブジェクトをすべて取得することができます。
for link in links:
objects = getattr(a, link).all()
for object in objects:
# do something with related object instance
私はこれを理解するためにしばらく時間を費やしました。 を実装するために、これを理解するのに時間を費やしました。お役に立てれば幸いです。
Django 1.8+
使用方法
_meta.get_fields()
:
https://docs.djangoproject.com/en/1.10/ref/models/meta/#django.db.models.options.Options.get_fields
(逆は
_get_fields()
ソースにもあります)
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] リストの要素数を取得する方法
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] django で複数のオブジェクトを削除する
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] サブフォルダからのインポートモジュール
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] dict を txt ファイルに書き、それを読み取る?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] Python Empty Generator 関数
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?