Django の GenericForeignKey をモデルのリストに制限するにはどうすれば良いですか?
2023-10-16 16:48:39
質問
contenttypes GenericForeignKey を持つモデルが、定義済みのリストからしかモデルを指さないように、django に指示する方法はありますか?例えば、私は 4 つのモデルを持っています。A, B, C, D と GenericForeignKey を持つモデル X です。Xに、GenericForeignKeyはA & Bのみ使用可能であると伝えることはできますか?
どのように解決するのですか?
例えば、以下のような場合です。 アプリはappとapp2で、appにはA,Bモデル、app2にはC,Dモデルが存在します。 を表示させたい場合 app.A と app.B と app2.C
from django.db import models
class TaggedItem(models.Model):
tag = models.SlugField()
limit = models.Q(app_label = 'app', model = 'a') | models.Q(app_label = 'app', model = 'b') | models.Q(app_label = 'app2', model = 'c')
content_type = models.ForeignKey(ContentType, limit_choices_to = limit)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
ForeignKeyにlimit_choices_toを使用します。
詳細は django docs を参照してください。また、Q オブジェクト、app_label も参照してください。 を使うには、適切な app_label とモデルを書く必要があります。これは単なるコードスニペットです。
plus: あなたは間違った app_label を書いていると思います。これはあなたの助けになります。
from django.contrib.contenttypes.models import ContentType
for c in ContentType.objects.all():
print(c.app_label, c.model)
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
[解決済み] Django のビューで 2 つ以上のクエリセットを結合するにはどうすればよいですか?
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み] 保存時に、フィールドが変更されたかどうかを確認するにはどうすればよいですか?
-
[解決済み】djangoのビジネスロジックとデータアクセスの分離
-
[解決済み】Djangoで一対多の関係を表現する方法は?
-
[解決済み] Django の ORM を使ってランダムなレコードを引き出すには?
-
[解決済み] Django Admin - 特定のモデルに対して 'Add' アクションを無効にする
-
[解決済み] dbなしの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 実装 サイバーパンク風ボタン
おすすめ
-
django request.data を修正する AttributeError: 属性を設定できない
-
Django ForeignKey逆引きクエリにおけるfilterと_setの効率比較
-
ImproperlyConfiguredです。INSTALLED_APPS の設定を要求されたが、設定されていない
-
[解決済み] Django vs. Model View Controller [終了しました]。
-
[解決済み] [Solved] カスタムDjango manage.pyコマンドをテストドライバから直接呼び出すにはどうしたらいいですか?
-
[解決済み] Django ORM のクエリセットに対応する SQL クエリを表示するには?
-
[解決済み] Django は単一のモデルに対してデータをダンプしますか?
-
[解決済み] Django テンプレート url タグに url パラメータを追加する方法は?
-
[解決済み] Djangoテンプレートでネストされたforループで一番外側のforloop.counterにアクセスする方法は?
-
[解決済み] django のモデルのクラス名を取得する