django: SmartSiteChoiceField...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich nutzte intensiv das Django Site Framework in PyLucid v0.9.

z.B. Kann man einen Blog Eintrag auf mehrere Sites stellen. Dabei soll es eine Erleichterung für den User geben.

1. Es soll immer die aktuelle Site vorausgewählt sein. Geht mit:

Code: Alles auswählen

initial = {"sites": [Site.objects.get_current().pk]}
2. Es sollen nur die Sites zur Auswahl stehen, die der User auch nutzten darf. Ermitteln kann man das über das User-Profile:

Code: Alles auswählen

user_profile = request.user.get_profile()
user_site_ids = user_profile.sites.values_list("id", "name")
2. Existiert nur eine Site oder darf der User nur auf einer Site zugreifen, dann soll das Eingabe Feld erst garnicht sichtbar sein. Dennoch sollte die aktuelle Site immer Eingetragen werden.

Ich hab das ganze mal mit einer Allgemeinen Lösung versucht: http://www.djangosnippets.org/snippets/1692/

Aber das funktioniert nicht richtig und ist IMHO zu umständlich. Hat jemand einen bessere Lösung parat???

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Wenns um den Admin geht würde ich mit:
http://code.djangoproject.com/browser/d ... ns.py#L152 spielen, allgemein ist zu sagen, dass ForeignKeyFields (die sicher) und wahrscheinlich auf Many2ManyFields ein queryset Attribut haben, damit kannst du dann die richtigen Seiten selektieren, was das verstecken betrifft: schreib nen read_only widget
Antworten