Speichern des aktuellen Benutzes über ein AdminInlineModel

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Hallo Leute.

Ich habe ein kleines Problem mit Django.

Ich möchte in einem InlineModel den aktuellen User aus dem AdminPanel einfügen. Dieses InlineModel/Model ist mit einen ForeignKey zur Tabelle User verbunden. Also kann ich ja auch nicht einfach ein prepopulated_fields machen.

Leider funktioniert die ganze Sache nicht so, wie in einem normalen Model mit der save_model() Methode, wie hier beschrieben: http://demongin.org/blog/806/

Meine unsaubere Lösung mit jQuery wäre den aktuell angemeldeten User aus dem Kopf des AdminPanels zu hohlen und so einzufügen. Was ich aber sehr unsauber finde.

Ich hoffe Ihr könnt mir da helfen.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Über jQuery wäre keine gute Idee. Der böse Client könnte ja sonst was schicken ;)

Ich hab das über ThreadLocal.get_current_user() in der model save() Methode gelöst, siehe: https://github.com/jedie/PyLucid/blob/m ... ls.py#L175

Das ganze kommt von django-tools und benötigt eine Middleware, siehe: https://github.com/jedie/django-tools/b ... adLocal.py

Wenn es aber nur um einen Admin view geht: https://docs.djangoproject.com/en/1.3/r ... save_model

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

Danke dir, hat super geklappt. :)
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Hi, du willst dir save_related bzw save_formset angucken: https://code.djangoproject.com/browser/ ... ns.py#L708

@jens: bitte gib threadlocal tipps nur wenn nötig zur lösung an und nicht als allheilmittel…
Antworten