当前位置: 首页 > 面试题库 >

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

明正德
2023-03-14
问题内容

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

目前,我所看到的唯一权限是“添加”,“更改”和“删除” …,但是其中没有“读取/查看”功能。

我确实需要这样做,因为有些用户只能查看管理面板,以查看已添加的内容。


问题答案:

在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中替换为:

{{ adminform.form.non_field_errors }}

有了这个:

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

然后通过删除以下行来删除提交按钮:

{% submit_row %}


 类似资料:
  • 问题内容: 我试图获取我的Layout 以适合我要移植到Java的程序的外观,在此之前,我已经使用了多个LayoutManager并获得了巨大的成功,但是由于某些原因,我似乎无法获得此布局都在工作。我的目标是有权利(东)侧的包含一个“查找下一个”和自上而下的命令“取消”按钮,然后在下面的任何额外的空间,从而使两个按钮总是在的顶部,但由于某种原因,它会不断忽略更改a宽度的任何尝试(这是我迷失的地方)

  • 在本文章教程中,我们将演示如何查看 Git 存储库的文件和提交记录,并对存储库中的文件作修改和提交。 注意:在开始学习本教程之前,先克隆一个存储库,有关如何克隆存储库,请参考: http://www.yiibai.com/git/git_clone_operation.html 比如,我们查看提交详细信息后,需要修改代码,或添加更多的代码,或者对比提交结果。 下面使用命令查看日志详细信息。 执行上

  • 问题内容: 编辑:当我说“ SQL Server”时,我实际上是在谈论Management Studio。 抱歉,这令人困惑。 哦,我讨厌这种事情发生。昨天我在使用SQL Server,并尝试使用PIVOT命令来弄清楚它是如何工作的。因此,我创建了一个包含四列的新表,第一列的前几行将具有相同的值。 我在第一行,第一列中添加了“ value1”,然后按回车键–因为还没有添加任何键或约束,它使我可以向

  • 我正在使用ajax进行表单更新。当我在ajax中使用GET方法时,它工作得很好,但当我使用Post方法时,它抛出了错误405 method,这是不允许的。我正在本地主机上测试这个。我以前在localhost中做过,效果很好。顺便说一句,我用的是Laravel5.2。 这是我的ajax代码。 这是我在视图中使用的脚本 这是我的路线 当ajax函数和路由中的方法更改为GET时,它会打印在控制台中传递的

  • 我用Spring靴和Spring安全。 我这样添加基于url的安全性 有没有办法只授权get、post、put…在url上担任某些角色?

  • 问题内容: 我在PHP中运行一个脚本,该脚本uisng循环为MySQL创建了一个字符串查询。 执行脚本后,出现以下错误: “您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以在’UPDATE BANNERS SET pos = 1 WHERE BID = 5; UPDATE BANNERS SET pos = 2 WHERE BID = 1’附近使用正确的语法。在第2行 在错误