Django admin禁用编辑链接和添加删除操作详解

禁用admin中models的编辑链接和添加删除按钮

方法如下:

class MyModelAdmin(models.ModelAdmin):
 ...
 List_display_links = None #禁用编辑链接

 def has_add_permission(self, request):
 # 禁用添加按钮
    return False

  def has_delete_permission(self, request, obj=None):
   # 禁用删除按钮
    return False

  def get_actions(self, request):
   # 在actions中去掉‘删除'操作
    actions = super(GradesManagementAdmin, self).get_actions(request)
    if request.user.username[0].upper() != 'J':
      if 'delete_selected' in actions:
        del actions['delete_selected']
    return actions

需要注意的是,这种禁用编辑链接的放法只是不让它在页面中显示,即把超链接去掉了,但是还是可以通过手动输入url的方式来进入编辑页面。不过可以配合设置fieldsets或者readonly_fieldss来达到目的。

以上这篇Django admin禁用编辑链接和添加删除操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Django-Model数据库操作(增删改查、连表结构)详解

    一.数据库操作 1.创建model表 基本结构 from django.db import models class userinfo(models.Model): #如果没有models.AutoField,默认会创建一个id的自增列 name = models.CharField(max_length=30) email = models.EmailField() memo = models.TextField() 更多字段: 1.models.AutoField 自增列= int(11)

  • Python列表常见操作详解(获取,增加,删除,修改,排序等)

    本文实例讲述了Python列表常见操作.分享给大家供大家参考,具体如下: 列表是由一系列按特定顺序排列的元素组成的对象.因为列表通常包含多个元素, 所以建议给列表指定一个表示复数的名称. 我们用方括号( [] ) 来表示列表, 并用逗号来分隔其中的元素. types=['娱乐','体育','科技'] print(types) 运行结果: ['娱乐', '体育', '科技'] 可以看到,打印列表的同时,也会将方括号打印出来. 1 获取元素 要获取列表中的某个元素, 在方括号内指定元素的索引即可:

  • 详解Django admin高级用法

    使用Django意味着后台框架的几乎所有内容都会和Django产生互动,排除功能全部手撸的情况. Django 后台admin有大量的属性和方法,拥有强大的功能和自定义能力.通过完整的代码来看Django admin的基础设置和高级用法,并结合form表单来实现深度自定义. 简单使用 如果只是使用admin自带的数据管理功能,只需要将模型注册到admin中,就可以实现. from django.contrib import admin admin.site.register(News) admi

  • Django admin禁用编辑链接和添加删除操作详解

    禁用admin中models的编辑链接和添加删除按钮 方法如下: class MyModelAdmin(models.ModelAdmin): ... List_display_links = None #禁用编辑链接 def has_add_permission(self, request): # 禁用添加按钮 return False def has_delete_permission(self, request, obj=None): # 禁用删除按钮 return False def g

  • JS利用prototype给类添加方法操作详解

    本文实例讲述了JS利用prototype给类添加方法操作.分享给大家供大家参考,具体如下: 1.如何定义一个简单的类? 以下是一个没有任何属性和方法的类的定义: function MyClass(){}; 你可能会想,这不就是个简单的函数声明?没错,这个函数就是一个类的定义的实现.如何使用这个类呢?看下面的代码: var cls1 = new MyClass(); 这样,利用new就可以生成MyClass的一个实例了.所以在js中可以说函数就是类,类就是函数. 2.给类增加属性和方法 funct

  • C#如何控制IIS动态添加删除网站详解

    我的目的是在Winform程序里面,可以直接启动一个HTTP服务端,给下游客户连接使用. 查找相关技术,有两种方法: 1.使用C#动态添加网站应用到IIS中,借用IIS的管理能力来提供HTTP接口.本文即对此做说明 2.在Winform程序中实现Web服务器逻辑,自己监听和管理客户端请求: 利用IIS7自带类库管理IIS现在变的更强大更方便,而完全可以不需要用DirecotryEntry这个类了(乐博网中很多.net管理iis6.0的文章都用到了DirecotryEntry这个类 ),Micro

  • Django Admin设置应用程序及模型顺序方法详解

    Django默认情况下,按字母顺序对模型进行排序.因此,Event应用模型的顺序为Epic.EventHero.EventVillain.Event 假设你希望顺序是 EventHero.EventVillain.Epic.Event. 用于呈现后台indxe页面的模板为admin/index.html,对应的视图函数为 ModelAdmin.index. def index(self, request, extra_context=None): """ Display th

  • MongoDB数据库插入、更新和删除操作详解

    一.Insert操作 Insert操作是MongoDB插入数据的基本方法,对目标集合使用Insert操作,会将该文档添加到MongoDB并自动生成相应的ID键.文档结构采用类似JSON的BSON格式.常见的插入操作主要有单条插入和批量插入两种形式.插入时只是简单地将文档存入数据库中,不进行额外的验证,也不会执行代码,所以不存在注入式攻击的可能. 1.单条插入 2.批量插入 MongoDB对批量插入的支持是通过传递多个文档组成的数组到数据库来实现的.由于它插入数据是通过发送TCP请求的,这样只需发

  • 关于MongoDB索引管理-索引的创建、查看、删除操作详解

    索引是提高查询查询效率最有效的手段.索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中,所在从索引中检索数据会非常快.如果没有索引,MongoDB必须扫描集合中的每一个文档,这种扫描的效率非常低,尤其是在数据量较大时. 1. 创建/重建索引 MongoDB全新创建索引使用ensureIndex()方法,对于已存在的索引可以使用reIndex()进行重建. 1.1 创建索引ensureI

  • 在Django admin中编辑ManyToManyField的实现方法

    如何定义多对多关系 Django 本身自带了一个很强大的ORM,支持自定义model并将其映射到数据库的表中 model中可以定义各种类型的数据,比较直观的比如整形, 字符型,也可以定义外键 ForeignKey来指定一对多关系. 关系数据库中有一种多对多的关系,在Django的ORM中也支持它,使用ManyToManyField. 下面使用EmailGroup和Email来展示如何使用 class EmailTo(models.Model): name = models.CharField(m

  • django admin search_fields placeholder 管理后台添加搜索框提示文字

    本文主要介绍了django admin search_fields placeholder 管理后台添加搜索框提示文字,分享给大家,具体如下: 如图, Django admin后台生成的搜索框, 默认是没有提示文字的, 不够友好; 网上也没搜到什么好的示例, 于是自己动手实现了一个 0. 已经存在的app名为carousel, 大致相当于如下操作/代码 $ python manage.py startapp carousel # settings.py ``` INSTALLED_APPS =

  • Jquery属性的获取/设置及样式添加/删除操作技巧分析

    本文实例讲述了Jquery属性的获取/设置及样式添加/删除操作技巧.分享给大家供大家参考,具体如下: Jquery属性的获取与设置 //找到第一个input,通过attr设置属性value的值 $("input:first").attr('value','新设值'); //同时为多个属性赋值 $("input:first").attr({'attr1':'v1','attr2':'v2'...}); //找到最后一个input,通过使用removeAttr删除属性

  • django自定义非主键自增字段类型详解(auto increment field)

    1.django自定义字段类型,实现非主键字段的自增 # -*- encoding: utf-8 -*- from django.db.models.fields import Field, IntegerField from django.core import checks, exceptions from django.utils.translation import ugettext_lazy as _ class AutoIncreField(Field): description =

随机推荐