我正在努力实现一些显而易见的事情,但我无法找到任何答案,无论是在谷歌还是在这里。我有一个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,按“搜索”并自动检索适当的交易。
答案 0 :(得分:41)
与其他管理员选项一样,您需要使用__ for foreign key,例如
search_fields = ['id', 'transaction__id']
答案 1 :(得分:6)
您还可以使用查找API“跟随”表示法对ForeignKey或ManyToManyField执行相关查找
解决方案:
search_fields = ['id', 'transaction__id']