Próbuję osiągnąć coś pozornie prostego, ale nie mogłem znaleźć żadnej odpowiedzi, ani w Google ani tutaj. Mam modelu Django, coś martwego prosta:Wyszukiwanie według klucza obcego w admin
class Shipment(models.Model):
id = models.AutoField(primary_key=True)
transaction = models.ForeignKey(Transaction)
Chciałbym być w stanie wyszukać w mojej stronie Administrator przesyłki przez transaction.id. Do jasności chcę tego (kod ten oczywiście nie działa):
class ShipmentAdmin(admin.ModelAdmin):
list_display = ('id', 'transaction')
search_fields = ['id', 'transaction.id']
ten nie może pracować przyczyna transaction.id nie nazwa pola. Dowolny pomysł? Przez "wyszukiwanie" mam na myśli możliwość wstawienia mojego identyfikatora transakcji w polu wyszukiwania na stronie Administracja przesyłek, naciśnięcie "szukaj" i automatyczne pobranie odpowiednich transakcji.
Dzięki, zadziałało :) –
To nie wydaje się działać, jeśli masz zamiar się dwa poziomy kluczy obcych, czyli „allocation__project__name” nie działa, gdzie alokacja ma projekt FK do projektu, a projekt ma nazwę. Jak rozwiązać ten problem? Ciągle otrzymuję " nie jest wywoływalne, atrybut " –
radtek
@radtek, który wydaje się działać dla mnie, mogę zrobić fk1__fk2__field, tylko wypróbowany w 1,7 tho, są alokacji i projektu tylko ForeignKey()? – JamesO