Джанго-автор е Django ап използва за актуализиране на автора и updated_by полета автоматично с request.user когато моделът е създаден / променен.
Също така, ако сте прекалено мързеливи, за да напишете автор = models.ForeignKey (User, _ ("автор"), related_name ...) на всеки модел, просто добаветеwith_author декоратор в началото на класа ви прави щастливи.
<Силен> Install
Тази библиотека е на PyPI така че можете да го инсталирате с:
PIP инсталирате Джанго-автор
или от GitHub:
PIP инсталирате Git + HTTPS: //github.com/lambdalisue/django-author.git
<Силен> Usage
1. Add "автор" на вашите INSTALLED_APPS на settings.py
2. Add 'author.middlewares.AuthorDefaultBackendMiddleware "да си MIDDLEWARE_CLASSES ако използвате по подразбиране автор бекенд
3. Добавете автор и updated_by поле на моделите, които искате да имате автор и updated_by полета ръчно или да използватеwith_author декоратор като по-долу:
& Nbsp; от модели внос django.db
& Nbsp; от author.decorators внасят with_author
& Nbsp;with_author
& Nbsp; клас Entry (models.Model):
& Nbsp; заглавие = models.CharField ("заглавието", MAX_LENGTH = 50)
& Nbsp; тялото = models.TextField ("орган")
4. Готово. Сега можете автоматично да се обновяват на автора и updated_by полета
& Nbsp; Ако сте в truble, вижте author_test директория за ползване проба.
<Силен> Settings
AUTHOR_BACKEND
& Nbsp; Class или низ пътя на гръб. гръб се използва за определяне на потребителя, когато се създава обект / обновява.
AUTHOR_CREATED_BY_FIELD_NAME
& Nbsp; A Име на полето. настройката също interfer името на поле, създадено отwith_author декоратор. подразбиране е "автор"
AUTHOR_UPDATED_BY_FIELD_NAME
& Nbsp; A Име на полето. настройката също interfer името на поле, създадено отwith_author декоратор. подразбиране е "updated_by"
AUTHOR_DO_NOT_UPDATE_WHILE_USER_IS_NONE
& Nbsp; Не актуализира автор или updated_by поле, когато открива употреба е None. подразбиране е True
AUTHOR_MODELS
& Nbsp; Проверка на сигнали само за тези модели. подразбиране е None
AUTHOR_IGNORE_MODELS
& Nbsp; Да не се проверява сигнали за тези модели. подразбиране е ['auth.user "," auth.group "," auth.permission "," contenttype.contenttype "]
<Силен> Backend
Thread_locals подразбиращите гръб употреба storategy да получите текущата заявка в сигнал повикване.
Ако искате да промените стратегията или каквото и да, да създадете свой собствен гръб.
Бекенд е клас, които имат метод get_user за определяне на текущия потребител.
AuthorDefaultBackend
& Nbsp; Default бекенд. Този бекенд върне None, когато няма искане намери или AnonymousUser създаде / актуализация обект.
AuthorSystemUserBackend
& Nbsp; System потребителското бекенд. Този потребител бекенд система за връщане, когато няма искане намери или AnonymousUser създаде / актуализация обект.
& Nbsp; потребителското система се определя с метода get_system_user и по подразбиране е User.objects.get (PK = 1)
<силни> Изисквания :
- <Ли > Python
- Django
Коментари не е намерена