相关疑难解决方法(0)

Django管理界面中的只读模型?

如何在管理界面中将模型完全只读?这是一种日志表,我使用管理功能进行搜索,排序,过滤等,但不需要修改日志.

如果这看起来像重复,这不是我想要做的:

  • 我不是在寻找只读字段(即使只读取每个字段仍会让你创建新记录)
  • 我不打算创建一个只读用户:每个用户都应该只读.

django readonly django-admin

77
推荐指数
9
解决办法
5万
查看次数

Django Admin-禁用编辑并删除特定型号的"保存"按钮

我有一个Django模型,我希望它只是readonly.不允许添加和编辑.

我在readAdly中标记了所有字段,并在ModelAdmin中覆盖了has_add_permission:

class SomeModelAdmin(admin.ModelAdmin):
     def has_add_permission(self, request):
        return False
Run Code Online (Sandbox Code Playgroud)

有类似的has_edit_permission吗?可以禁用哪个删除"保存"和"保存并继续"按钮?并通过简单的"关闭并返回"按钮替换.

Django文档仅提及只读字段而不是覆盖编辑权限.

django django-admin

18
推荐指数
6
解决办法
2万
查看次数

在Django中查看权限

由于django admin在其auth中有三个权限:添加,更改,删除!我想在管理面板中添加此身份验证中的查看权限.我知道我必须自定义权限才能在'auth |权限|查看权限'中添加查看权限以查看所有条目!

方式:

[X] 1.在默认权限列表中添加"查看"

#./contrib/auth/management/init.py
def _get_all_permissions(opts):

    "Returns (codename, name) for all permissions in the given opts."
    perms = []
    for action in ('add', 'change', 'delete', 'view'):

        perms.append((_get_permission_codename(action, opts), u'Can %s %s' % (action, opts.verbose_name_raw)))

    return perms + list(opts.permissions)
Run Code Online (Sandbox Code Playgroud)

[X] 2.测试'视图'权限被添加到所有模型

run manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

我确认现在为auth_permissions表中的所有表添加了视图权限

[X] 3.将"get_view_permission"添加到默认模型类.

将get_view_permission添加到模型类.您可以在./db/models/options.py文件中找到它.管理类将在下一步中使用它.

def get_view_permission(self):

    return 'view_%s' % self.object_name.lower()
Run Code Online (Sandbox Code Playgroud)

[X] 4.将"has_view_permission"添加到默认管理类

为了保持一致,我要将"has_view_permission"添加到系统中.看起来它应该在contrib/admin/options.py中的某个地方.确保用户具有更改权限,然后自动隐含查看权限.

# /contrib/admin/options.py
# Added has_view_permissions
def has_view_permission(self, request, obj=None):

    """
    Returns True if the given request has permission to …
Run Code Online (Sandbox Code Playgroud)

python permissions django-1.6

15
推荐指数
2
解决办法
3万
查看次数