A Django-szerző egy Django app aktualizálására szerző és updated_by mezők automatikusan request.user ha a modell teremtett / megváltozott.
Akkor is, ha túl lusta írni author = models.ForeignKey (User, _ ("szerző"), related_name ...), hogy minden modell, csak addwith_author dekoratőr, a tetejére class tesz boldoggá.
Telepítés
Ez a könyvtár a PyPI így telepíthetjük:
pip telepíteni Django-szerző
vagy a GitHub:
pip telepíteni git + https: //github.com/lambdalisue/django-author.git
Használat
1. Add "szerző" a INSTALLED_APPS a settings.py
2. Add "author.middlewares.AuthorDefaultBackendMiddleware" a MIDDLEWARE_CLASSES ha használja alapértelmezett szerző backend
3. Add szerző és updated_by mező modell, amely azt szeretné, hogy a szerző és updated_by mezőket manuálisan vagy használjawith_author dekoratőr, mint az alábbi:
& Nbsp; a django.db import modellek
& Nbsp; a author.decorators importálni with_author
& Nbsp;with_author
& Nbsp; class Entry (models.Model):
& Nbsp; title = models.CharField ('title', MAX_LENGTH = 50)
& Nbsp; body = models.TextField ("test")
4. Kész. Most már automatikusan frissül szerző és updated_by mezők
& Nbsp; Ha a truble, lásd author_test könyvtár használatra mintát.
Beállítások
AUTHOR_BACKEND
& Nbsp; Class vagy string path of backend. A backend meghatározásához használt felhasználót, ha objektum létrehozásakor / frissítve.
AUTHOR_CREATED_BY_FIELD_NAME
& Nbsp; A rovat neve. A beállítás is interfer neve mezőben által létrehozottwith_author lakberendező. alapértelmezett a "szerző"
AUTHOR_UPDATED_BY_FIELD_NAME
& Nbsp; A rovat neve. A beállítás is interfer neve mezőben által létrehozottwith_author lakberendező. alapértelmezés "updated_by"
AUTHOR_DO_NOT_UPDATE_WHILE_USER_IS_NONE
& Nbsp; Ne szerző frissítése vagy updated_by területen, ha kimutatható felhasználó Semmi. alapértéke az igaz
AUTHOR_MODELS
& Nbsp; A jelek csak ezek a modellek. alapesetben nincs
AUTHOR_IGNORE_MODELS
& Nbsp; Ne ellenőrizze jelek ezeket a modelleket. alapbeállítás ['auth.user', 'auth.group "," auth.permission "," contenttype.contenttype "]
háttér
Az alapértelmezett backend használata thread_locals storategy, hogy felmerült az igény a jel hívást.
Ha meg szeretné változtatni a stratégia, vagy bármi, létrehozhat saját backend.
A backend egy osztály, amelynek get_user módszer annak meghatározására aktuális felhasználó.
AuthorDefaultBackend
& Nbsp; Default backend. Ez a backend vissza sem, ha nem történt felszólítás található, vagy AnonymousUser létrehozása / módosítása objektumot.
AuthorSystemUserBackend
& Nbsp; A rendszer felhasználói backend. Ez a backend-visszavezető rendszer felhasználót, ha nincs kérelem talált, illetve AnonymousUser létrehozása / módosítása objektumot.
& Nbsp; rendszer felhasználói állapítjuk meg get_system_user módszer és alapérték User.objects.get (pk = 1)
követelmények :
- Python
- Django
Hozzászólás nem található