Seite 1 von 1
[django] admin-liste mit filter
Verfasst: Montag 16. August 2010, 21:49
von ralf58
Hallo,
ich möchte aus der Detail-View einer Schulung auf die Listenansicht der Teilnehmer gehen, aber dort nur die Teilnehmer der Schulung sehen und das Ganze mit der admin-Funktionalität.
Die Schulungs-Id rauszureichen bis zu einer view-Funktion ist kein Problem =>
my_app/schulung/35/teilnehmerliste
Aber wie bekomme ich nun die Admin-Liste für den Teilnehmer aufgerufen und dabei die Schulungs-Id übergeben? :K
Code: Alles auswählen
class Schulung...
name = model. CharField...
class Teilnehmer
name = model.CharField
schulung = model.ForeignKey(schulung)
Danke im voraus
Ralf
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 00:08
von Dauerbaustelle
Was?! Bitte nochmal. Das versteht kein Mensch.
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 07:38
von ralf58
Noch ein Beschreibungsversuch:
ich habe ein Model Schulung und ein Model Teilnehmer, wobei jeder Teilnehmer an genau 1 Schulung teilnimmt. Die Verwaltung für die Listen- und Detailansicht erfolgt jeweils über das django.contrib.admin-Package.
Auf der Detailseite der Schulung habe ich nun einen Link untergebracht, der mir die Teilnehmerliste zu dieser Schulung zeigen soll, d.h. im href die id der Schulung enthält.
Ich finde nun keine Möglichkeit diese id an die Methode queryset meiner TeilnehmerAdmin-Klasse durch zu reichen, um die Teilnehmerliste dort entsprechend zu filtern.
Ich hoffe, so ist es besser zu verstehen
Ralf
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 09:38
von jens
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 10:12
von ralf58
Leider nicht so ganz.
Mit dem list_filter könnte der Anwender zwar auch die Teilnehmer der "einen" Schulung sehen. Dazu müsste er dann aber erst "seine" Schulung aus der, sehr langen, Liste der Schulungen auswählen.
Was ich möchte wäre sozusagen die feste Vorauswahl einer Schulung im Filter, ohne dass der Filter noch dar gestellt wird.
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 10:32
von jens
Dann mußt du wohl die Admin Klasse erweitern. Das ist nicht ganz so einfach, aber dürfte gehen...
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 10:47
von Dauerbaustelle
Zwei Möglichkeiten:
- Du schaust dir Inline Models an
- Du hängst an die Teilnehmer-Liste-URL Query-Argumente an; Beispiele: schulung__id=42, id__exact=5, id__in=5,8,9, id__lt=200&id__gt=100 (100 < id < 200)
Re: [django] admin-liste mit filter
Verfasst: Dienstag 17. August 2010, 15:28
von ralf58
inline-model ist leider nicht erwünscht.
Einen Parameter an die Url anhängen, also z.B.
myapp/teilnehmer/schulung_id=35 erfordert ein Überschreiben der get_urls-Methode der abgeleiteten admin-Klasse, da sonst die change_view-Methode aufgerufen wird.
Das funktioniert soweit auch. Nun muss ich aber auch die changelist_view-Methode im Admin überschreiben. Dort kommt u'schulung_id=35' als unicode im Methodenparameter extra_context an. Das ist nicht sehr schön, aber es funktioniert.
Oder geht es auch etwas eleganter?
