在我工作的Django项目中,内置的('add', 'change', 'delete')
权限对我们来说是无用的,只会使我们的用户在表单中混淆;我们不使用Django管理员,我们通常没有多少权限而不是一个edit
权限,我们的模型比我们想要赋予权限的对象更精细(如一个简单的例子,对Invoice
和InvoiceLine
拥有单独的权限是没有意义的 - 它们在概念上是相同的。)
无论如何,目前我通过从自定义抽象基础模型中继承每个模型来实现这一目标,其中default_permissions = ()
中包含Meta
,加上一些丑陋的黑客来获取第三方的权限模特走开了。有没有什么办法可以让Django默认不创建这三个权限?
答案 0 :(得分:1)
如果您不使用管理员,则不必担心默认权限。在其他地方默认不强制执行它们。您可以随意创建自己的Permission,并在编辑视图中检查用户是否具有此功能,permission_required用于功能视图,PermissionRequiredMixin用于基于类的视图(以及Django&gt; 1.9)。< / p>