A set of Django mixins to easily record authorship information for your models.
Project description
A set of Django mixins to easily record authorship information for your models.
Features
Base model allows easy recording of authorship information.
Integration with Django’s class-based views and forms.
Integration with Django’s admin.
Documentation
The full documentation is at https://django-authorship.readthedocs.io/
Quickstart
Install django-authorship using the installation instructions found in the project documentation.
Build a model based on authorship.models.Authorship to record authorship information on it:
from authorship.models import Authorship class MyModel(Authorship): pass
This adds created_by, created_at, updated_by, and updated_at to your model.
Pass a user into calls to .save() to record which user changed the object:
example = MyModel() example.save(user=request.user)
If you need to update model data and there’s no direct link to a website user, generate and use a site-wide ‘generic’ user.:
from authorship.models import get_website_user example = MyModel() example.save(user=get_website_user())
If you wish to automatically record authorship information for changes made in the Django admin, use authorship.admin.AuthorshipMixin.:
from authorship.admin import AuthorshipMixin from django.contrib import admin from .models import MyModel @admin.register(MyModel) class MyModelAdmin(AuthorshipMixin, admin.ModelAdmin): pass
If you wish to integrate with django.forms.ModelForm, use authorship.forms.AuthorshipMixin and authorship.views.AuthorshipMixin.
In your forms.py:
from authorship.forms import AuthorshipMixin from django import forms from .models import MyModel class MyModelForm(forms.ModelForm): class Meta(object): model = MyModel
In your views.py:
from authorship.views import AuthorshipMixin from django.views.generic import CreateView from .forms import MyModelForm from .models import MyModel class MyModelCreateView(AuthorshipMixin, CreateView): form_class = MyModelForm
MyModelCreateView will now automatically pass request.user through to MyModelForm, which will pass it through to the model’s save() method.
Credits
See AUTHORS.rst.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for django_authorship-2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c80de3c6d5ee81bb7f85934bfc01a36e1269e7f33795b9301775e90152d3d36 |
|
MD5 | e7bbf68fa4a581572a5220646068c5a2 |
|
BLAKE2b-256 | a48a43cdb7ed7e7df5aa3f2040a09b618cd76e0feb6143710930e5b624beabc7 |