4

私のモデル:

OrderInfo は Print と 1 対 1 であり、これは Paint との多対 1 であり、それ自体は Club との多対 1 です。

class OrderInfo(models.Model):
    print_ordered = models.OneToOneField(Print, blank=True)

class Print(models.Model):
    painting = models.ForeignKey(Painting)

class Painting(models.Model):
    club = models.ForeignKey(Club)

私の OrderInfoAdmin で、関連するクラブでソートできるようにしたいのですが、これを行うための構文がわかりません。

私はこれを試しましたが、うまくいきません:

class OrderInfoAdmin(admin.ModelAdmin):
    list_filter = ['print_ordered__painting__club']

事前に感謝します。

4

2 に答える 2

2

このlist_filterコマンドは、順序付けではなくフィルタリング用です。orderingここに文書化されているコマンドが必要です: http://docs.djangoproject.com/en/dev/ref/models/options/#orderingmodelingMeta コマンドで外部キーによる順序付けが許可されているかどうかは、ドキュメントからはわかりません。( filter()queryset 関数は間違いなくそうします: http://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by-fields )

管理者が深く階層化されたモデルを操作するには、いくつかの制限があることがわかりました。たとえば、親のページで子モデルをインライン化できますが、孫をインライン化することはできません。また、デフォルトでは、list_filterコマンドはモデル化されたテーブルのフィールドに対してのみ機能します。あなたの例では、たとえば管理者のフィールドをフィルタリングできませんでしPrintOrderInfo

于 2009-02-24T12:40:08.747 に答える