Django-penulis adalah aplikasi Django digunakan untuk memperbarui penulis dan updated_by bidang secara otomatis dengan request.user saat model telah menciptakan / berubah.
Juga jika Anda terlalu malas untuk menulis author = models.ForeignKey (User, _ ('penulis'), related_name ...) untuk setiap model, cukup tambahkanwith_author dekorator ke atas kelas membuat Anda bahagia.
Instal
Perpustakaan ini adalah pada PyPI sehingga Anda dapat menginstalnya dengan:
pip menginstal Django penulis
atau dari github:
pip install git + https: //github.com/lambdalisue/django-author.git
Penggunaan
1. Add 'penulis' untuk INSTALLED_APPS Anda settings.py
2. Tambahkan 'author.middlewares.AuthorDefaultBackendMiddleware' ke MIDDLEWARE_CLASSES Anda jika Anda menggunakan standar penulis backend
3. Tambahkan penulis dan lapangan updated_by model yang Anda ingin memiliki penulis dan updated_by bidang secara manual atau menggunakan dekoratorwith_author seperti di bawah ini:
& Nbsp; dari model impor django.db
& Nbsp; dari author.decorators impor with_author
& Nbsp;with_author
& Nbsp; kelas entri (models.Model):
& Nbsp; title = models.CharField ('title', max_length = 50)
& Nbsp; body = models.TextField ('body')
4. Selesai. Bidang penulis dan updated_by Sekarang Anda telah diperbarui secara otomatis
& Nbsp; Jika Anda berada di truble, lihat author_test direktori untuk sampel penggunaan.
Pengaturan
AUTHOR_BACKEND
& Nbsp; Kelas atau string path dari backend. backend digunakan untuk menentukan pengguna saat objek dibuat / diperbarui.
AUTHOR_CREATED_BY_FIELD_NAME
& Nbsp; Sebuah nama lapangan. Pengaturan juga interfer nama lapangan yang dibuat olehwith_author dekorator. default adalah 'penulis'
AUTHOR_UPDATED_BY_FIELD_NAME
& Nbsp; Sebuah nama lapangan. Pengaturan juga interfer nama lapangan yang dibuat olehwith_author dekorator. default adalah 'updated_by'
AUTHOR_DO_NOT_UPDATE_WHILE_USER_IS_NONE
& Nbsp; Jangan memperbarui penulis atau lapangan updated_by ketika terdeteksi pengguna None. default adalah Benar
AUTHOR_MODELS
& Nbsp; Periksa sinyal hanya model ini. default adalah None
AUTHOR_IGNORE_MODELS
& Nbsp; Jangan memeriksa sinyal untuk model ini. default adalah ['auth.user', 'auth.group', 'auth.permission', 'contenttype.contenttype']
Backend
Backend default menggunakan thread_locals storategy untuk mendapatkan permintaan saat dalam panggilan sinyal.
Jika Anda ingin mengubah strategi atau apa pun, membuat backend Anda sendiri.
Sebuah backend adalah kelas yang memiliki metode get_user untuk menentukan pengguna saat ini.
AuthorDefaultBackend
& Nbsp; backend default. Ini backend kembali ada ketika ada permintaan ditemukan atau AnonymousUser membuat objek / update.
AuthorSystemUserBackend
& Nbsp; Sistem pengguna backend. Pengguna sistem backend kembali ketika ada permintaan ditemukan atau AnonymousUser membuat objek / update.
& Nbsp; sistem pengguna ditentukan dengan metode get_system_user dan default adalah User.objects.get (pk = 1)
Persyaratan :
- Python
- Django
Komentar tidak ditemukan