Django-autor aplikace Django používá pro aktualizaci autora a updated_by pole automaticky request.user když model vytvořil / změnil.
Také pokud jste příliš líní psát author = models.ForeignKey (User, _ ("autor"), related_name ...), ke každému modelu, stačí přidatwith_author dekoratér na vrchol třídy dělá radost.
Instalovat
Tato knihovna je PyPI, takže si můžete nainstalovat pomocí:
Pip nainstalovat Django-autora
nebo z githubu:
Pip instalovat git + https: //github.com/lambdalisue/django-author.git
Použít
1. Přidejte "autor", aby vaše INSTALLED_APPS na settings.py
2. Přidat "author.middlewares.AuthorDefaultBackendMiddleware" do MIDDLEWARE_CLASSES pokud používáte výchozí autor backend
3. Přidejte autora a updated_by pole modely, které chcete mít autora a updated_by polí ručně nebo pomocíwith_author dekoratér jako níže:
& Nbsp; z django.db modelů dovozních
& Nbsp; z author.decorators import with_author
& Nbsp;with_author
& Nbsp; třída Entry (models.Model):
& Nbsp; title = models.CharField ("title", MAX_LENGTH = 50)
& Nbsp; body = models.TextField ("body"),
4. Hotovo. Nyní jste automaticky aktualizovány autorů a updated_by pole
& Nbsp; Pokud jste v truble viz author_test adresář pro vzorek použití.
Nastavení
AUTHOR_BACKEND
& Nbsp; Class nebo řetězec cesta backend. backend se používá k určení uživatele, když je objekt vytvořen / aktualizován.
AUTHOR_CREATED_BY_FIELD_NAME
& Nbsp; název pole. nastavení také interfer název pole vytvořenéwith_author malíř pokojů. Výchozí hodnota je "autor"
AUTHOR_UPDATED_BY_FIELD_NAME
& Nbsp; název pole. nastavení také interfer název pole vytvořenéwith_author malíř pokojů. Výchozí hodnota je "updated_by"
AUTHOR_DO_NOT_UPDATE_WHILE_USER_IS_NONE
& Nbsp; Neaktualizujte autora nebo updated_by pole když zjištěn uživatel je None. Výchozí hodnota je true
AUTHOR_MODELS
& Nbsp; Podívejte se signály pouze pro tyto modely. Výchozí hodnota je None
AUTHOR_IGNORE_MODELS
& Nbsp; Nenechte kontrolovat signál pro tyto modely. Výchozí nastavení je ['auth.user "," auth.group "," auth.permission "," contenttype.contenttype']
Backend
Použití thread_locals výchozí backend storategy získat aktuální žádosti v signálu hovoru.
Chcete-li změnit strategii, nebo cokoliv, vytvořte si vlastní backend.
Backend je třída, která má metodu, get_user pro určení aktuálního uživatele.
AuthorDefaultBackend
& Nbsp; výchozí backend. Tento backend vrátí None pokud není žádost shledána ani AnonymousUser vytvoření / aktualizace objektu.
AuthorSystemUserBackend
& Nbsp; uživatel systému backend. Tento uživatel backend zpětného odběru, pokud žádný požadavek nalezen nebo AnonymousUser vytvoření / aktualizace objektu.
& Nbsp; uživatel systém je určen metodou get_system_user a ve výchozím nastavení je User.objects.get (pk = 1)
Požadavky na :
- Python
- Django
Komentáře nebyl nalezen