允许查看,但不能更改!- 姜戈

Permission to view, but not to change! - Django(允许查看,但不能更改!- 姜戈)
本文介绍了允许查看,但不能更改!- 姜戈的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以授予用户查看权限,但不能更改或删除.

is it possible to give users the permission to view, but not to change or delete.

目前我看到的唯一权限是添加"、更改"和删除"......但那里没有读取/查看".

currently in the only permissions I see are "add", "change" and "delete"... but there is no "read/view" in there.

我真的需要这个,因为有些用户只能查看管理面板,才能查看添加的内容.

I really need this as some users will only be able to consult the admin panel, in order to see what has been added in.

推荐答案

更新:自 Django 2.1 现在是内置的.

Update: Since Django 2.1 this is now built-in.

在 admin.py 中

In admin.py

# Main reusable Admin class for only viewing
class ViewAdmin(admin.ModelAdmin):

    """
    Custom made change_form template just for viewing purposes
    You need to copy this from /django/contrib/admin/templates/admin/change_form.html
    And then put that in your template folder that is specified in the 
    settings.TEMPLATE_DIR
    """
    change_form_template = 'view_form.html'

    # Remove the delete Admin Action for this Model
    actions = None

    def has_add_permission(self, request):
        return False

    def has_delete_permission(self, request, obj=None):
        return False

    def save_model(self, request, obj, form, change):
        #Return nothing to make sure user can't update any data
        pass

# Example usage:
class SomeAdmin(ViewAdmin):
    # put your admin stuff here
    # or use pass

在 change_form.html 中替换:

In change_form.html replace this:

{{ adminform.form.non_field_errors }}

用这个:

<table>
{% for field in adminform.form %}
    <tr>
      <td>{{ field.label_tag }}:</td><td>{{ field.value }}</td>
    </tr>
{% endfor %}
</table>

然后通过删除这一行来移除提交按钮:

Then remove the submit button by deleting this row:

{% submit_row %}

这篇关于允许查看,但不能更改!- 姜戈的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)