在admin中按外键ID搜索

时间:2012-02-07 09:48:37

标签: django search django-admin foreign-keys

我正在努力实现一些显而易见的事情,但我无法找到任何答案,无论是在谷歌还是在这里。我有一个Django模型,简单的东西:

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

我希望能够通过transaction.id在我的货件管理页面中进行搜索。为清楚起见, 我想要这个(这段代码显然不起作用):

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

这不起作用导致transaction.id没有命名字段。任何的想法? 通过“搜索”,我的意思是能够在“货件管理”页面的搜索框中插入我的交易ID,按“搜索”并自动检索适当的交易。

2 个答案:

答案 0 :(得分:41)

与其他管理员选项一样,您需要使用__ for foreign key,例如

search_fields = ['id', 'transaction__id']

答案 1 :(得分:6)

search_fields documentation

  

您还可以使用查找API“跟随”表示法对ForeignKey或ManyToManyField执行相关查找

解决方案:

search_fields = ['id', 'transaction__id']