2012-02-07 24 views
10

私は明らかに単純なものを達成しようとしていますが、私はGoogleでもここでも答えは見つかりませんでした。外部キーで管理者で検索

class Shipment(models.Model): 
    id = models.AutoField(primary_key=True) 
    transaction = models.ForeignKey(Transaction) 

私はtransaction.idで私の出荷管理ページで検索できるようにしたいと思います:私は、Djangoのモデル、デッドシンプルな何かを持っています。明瞭さに、私はこれ(このコードは明らかに動作しません)したい :transaction.idがフィールドに名前を付けていない原因

class ShipmentAdmin(admin.ModelAdmin): 
    list_display = ('id', 'transaction') 
    search_fields = ['id', 'transaction.id'] 

をこれが動作することはできません。何か案が? 「検索」とは、「出荷管理」ページの検索ボックスに自分のトランザクションIDを挿入し、「検索」を押して適切な取引を自動的に検索できることを意味します。

答えて

25

他の管理オプションは、__ for foreign keyを使用する必要があります。ドキュメントリンクの

search_fields = ['id', 'transaction__id'] 
+0

おかげで、それが働いた:) –

+0

をあなたが外部キーの二つのレベルをアップつもりなら、すなわち「allocation__project__name」はどこアロケーション動作しない動作するようには思えませんプロジェクトにはFKを、プロジェクトには名前が付いています。それをどうやって解決しますか?私は "を呼び出すことはできません" – radtek

+1

@ radtekの属性は、私のために働くと思われます、私はfk1__fk2__fieldを行うことができます、1.7トートで試して、割り当てとプロジェクトだけでForeignKey()? – JamesO

4

search_fields documentation

ます。また、検索APIの表記を "追跡"

SolutionでのForeignKeyかのManyToManyFieldに関連した検索を行うことができますと同じように

search_fields = ['id', 'transaction__id'] 
+0

感謝:) –

関連する問題