dj_auth 的目标是限制某些用户对您的 django 项目的数据访问。
项目描述
dj_auth
—
dj_auth 的目标是限制某些用户对您的 django 项目的数据访问。
要求
Django 1.9
快速开始
安装 dj_auth:
pip install dj_auth
将 dj_auth 放入设置模块的 INSTALLED_APPS 中:
INSTALLED_APPS = ( ... 'dj_auth', )
通过运行创建 dj_auth 数据库表:
python manage.py migrate
扩展模型的 Queryset 方法:
from django.db import models
from dj_auth.models import ObjectFilterQuerySetMixin
class YourModelQuerySet(ObjectFilterQuerySetMixin, models.QuerySet):
def sichtbar(self, sichtbar=True):
return self.filter(sichtbar=sichtbar)
class YourModel(models.Model):
your_fielfs = models.SmallIntegerField()
objects = YourModelQuerySet.as_manager()
在 settings.py 中设置 DJ_AUTH 常量:
DJ_AUTH = {'content_type_exclude': ('contenttypes.contenttype', 'sessions.session', 'sites.site',
'auth.user', 'auth.group', 'auth.permission', 'admin.logentry',
'dj_auth.objectfilter',),
'content_type_include': (),
'global_fields_exclude': ('user', ),
'related_filter_fields_exclude': {'auth.user': ('groups', ), },
}
在“content_type_exclude”中,您放置您不想在其上创建 ObjectFilters 的模型
在“content_type_include”中,您放置要在其上创建 ObjectFilters 的模型
在“global_fields_exclude”中,您将不想全局应用 ObjectFilter 的字段名
在“related_filter_fields_exclude”中,您可以将不想为特定模型应用 ObjectFilter 的字段名
特征
ObjectFilterFormMixin
首先,您必须为特定用户创建一个 ObjectFilter 记录。因此,您应该使用 ObjectFilterFormMixin:
from django import forms
from dj_auth.forms import ObjectFilterFormMixin
class ObjectFilterForm(ObjectFilterFormMixin, forms.ModelForm):
pass
ObjectFilterListMixin
要限制 ListView 中的数据,请使用 ObjectFilterListMixin:
from django.views.generic import ListView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterListMixin
class UserListView(ObjectFilterListMixin, ListView):
model = get_user_model()
ObjectFilterDetailMixin
要限制 DetailView 中的数据,请使用 ObjectFilterDetailMixin:
from django.views.generic import DetailView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterDetailMixin
class UserDetailView(ObjectFilterDetailMixin, DetailView):
model = get_user_model()
ObjectFilterUpdateMixin
要限制 UpdateView 中的数据,请使用 ObjectFilterUpdateMixin:
from django.views.generic import UpdateView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterUpdateMixin
class UserDetailView(ObjectFilterUpdateMixin, UpdateView):
model = get_user_model()
ObjectFilterDeleteMixin
要限制 UpdateView 中的数据,请使用 ObjectFilterDeleteMixin:
from django.views.generic import DeleteView
from django.contrib.auth import get_user_model
from dj_auth.views import ObjectFilterDeleteMixin
class UserDetailView(ObjectFilterDeleteMixin, DeleteView):
model = get_user_model()
去做
运行测试
代码真的有效吗?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install -r requirements_test.txt (myenv) $ coverage run --source=dj_auth runtests.py && coverage html
学分
用于渲染此包的工具:
历史
0.1.0 (2016-07-29)
PyPI 上的第一个版本。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
dj_auth-1.5.1.tar.gz
(12.2 kB
查看哈希)
内置分布
dj_auth-1.5.1-py2.py3-none-any.whl
(16.1 kB
查看哈希)