私は以下の問題があります。Djangoインラインモデル管理フィルター外部フィールド
私は3つのモデルがあります:私は、サイトとの契約管理&ピクチャーインライン管理モデルにしたい
class Deal(models.Model):
name = models.CharField(max_length=80)
class Site(models.Model):
name = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
class Picture(models.Model):
title = models.CharField(max_length=80)
deal = models.ForeignKey(Deal)
site = models.ForeignKey(Site)
を:私は絵でサイトを選択していたときに私が何をしたいのか
class SiteInline(admin.StackedInline):
model = Site
extra = 1
class PictureInline(admin.StackedInline):
model = Picture
extra = 1
class DealAdmin(admin.ModelAdmin):
inlines = [
SiteInline,
PictureInline,
]
です管理者は、表示している現在の取引に属しているサイトのみを表示します(新しいものを作成していない場合は更新します)。
私はこれを管理者で動作させたいと思っています。ウェブを検索するのに何時間も費やしましたが、役に立たないものは何も見つかりませんでした。
私はこのようにそれを行うにしようとしていたが、私は取引IDを取得するために、親モデルのインスタンスにアクセスする方法がわからない:DTingの変形例では
def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
if db_field.name == 'site':
kwargs['queryset'] = Site.objects.filter(deal__id=1)
return super(PictureInline, self).formfield_for_foreignkey(db_field, request=None, **kwargs)
'' 'クラスPictureInline(admin.ModelAdmin):' ''これは正確ですか? PictureInline(admin.StackedInline)に '' 'form = PictureInlineForm'''を追加している間、結果を返すことはできません:' ''我々はエラー '' 'を受け取りますPictureは取引がありません" – raratiru