2012-02-07 33 views
10

Görünüşe göre basit bir şeye ulaşmaya çalışıyorum ama ne cevap veremedim, ne Google'da ne de burada. Django modeli, ölü basit bir şey vardır:Yönetici olarak yabancı anahtar kimliğine göre ara

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

Ben transaction.id benim Gönderi Yönetici sayfasında arama yapabilmek istiyorum. netlik, için ben (bu kod besbelli çalışmıyor) bu istiyorum:

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

Bu alan adı yok neden transaction.id çalışamaz. Herhangi bir fikir? "search" ile işlem kimliğimi Shipment Admin sayfasının arama kutusuna ekleyebiliyorum, "search" e basıp uygun işlemleri otomatik olarak alabiliyorum.

cevap

25

:

Ayrıca notasyonunu

Çözümü "follow" arama API ile bir ForeignKey veya ManyToManyField bununla ilgili bir araması yapabilirsiniz diğer yönetici seçenekleri, __ for foreign key s doc bağlantıdan

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

sayesinde, yabancı anahtarların iki seviye yukarı gidiyoruz :) –

+0

İşe görünmüyor çalıştı yani 'allocation__project__name' nereye tahsis çalışmıyor projenin bir FK'si var ve projenin bir ismi var. Bunu nasıl çözersin? " bir callable, " – radtek

+1

@radtek bir öznitelik, benim için işe yarayacak gibi görünüyor, fk1__fk2__field yapabilirim, sadece 1.7 tho denedim, tahsis ve sadece ForeignKey()? – JamesO