Estoy tratando de lograr algo aparentemente simple pero no pude encontrar ninguna respuesta, ni en Google ni aquí. Tengo un modelo de Django, algo muerto-simple:Buscar por ID de clave foránea en admin
class Shipment(models.Model):
id = models.AutoField(primary_key=True)
transaction = models.ForeignKey(Transaction)
Me gustaría ser capaz de buscar en mi página de administración Envío por transaction.id. Para mayor claridad, quiero esto (este código, obviamente, no funciona):
class ShipmentAdmin(admin.ModelAdmin):
list_display = ('id', 'transaction')
search_fields = ['id', 'transaction.id']
esto no puede funcionar causa transaction.id no nombra a un campo. ¿Alguna idea? Por "búsqueda" me refiero a poder insertar mi ID de transacción dentro del cuadro de búsqueda de la página Admin. De envío, presionar "buscar" y recuperar automáticamente las transacciones apropiadas.
Gracias, funcionó :) –
no parece trabajar si vas hasta dos niveles de claves externas, es decir, 'allocation__project__name' no funciona donde la asignación tiene un FK para proyectar y el proyecto tiene un nombre. ¿Cómo resuelves eso? Sigo recibiendo el " no es un invocable, un atributo de " –
radtek
@radtek, que parece funcionar para mí, puedo hacer fk1__fk2__field, solo intentado en 1.7 tho, son asignación y proyecto solo ForeignKey()? – JamesO