首页 > 其他分享 >django admin 自动选择登录用户

django admin 自动选择登录用户

时间:2023-03-30 16:23:55浏览次数:48  
标签:return 登录 extra admin self request django field data

Django 为我们提供了一个很好的管理界面。但是当我们只使用默认值时,用户需要自己选择他们是谁。我们想为他们自动选择,他们不能假装是其他人。

class NotesAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'created_by':
            kwargs['queryset'] = User.objects.filter(username=request.user.username)
        return super(NotesAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

    def get_readonly_fields(self, request, obj=None):
        if obj is not None:
            return self.readonly_fields + ('created_by',)
        return self.readonly_fields

    def add_view(self, request, form_url="", extra_context=None):
        data = request.GET.copy()
        data['created_by'] = request.user
        request.GET = data
        return super(NotesAdmin, self).add_view(request, form_url="", extra_context=extra_context)

 

标签:return,登录,extra,admin,self,request,django,field,data
From: https://www.cnblogs.com/superip/p/17273245.html

相关文章

  • Django admin中TabularInline和StackedInline使用
    TabularInline类用于在A页面上编辑B表的字段,举例说明,如果models.py中有Staff、Job两个model:fromdjango.dbimportmodelsclassStaff(models.Model):name=model......
  • 钥匙环服务,打造无缝的跨设备登录体验
    近些年来,随着手机技术迭代更新越来越快,用户更换手机的周期也在缩短,在这样的背景下,开发者不得不面临以下问题:同一开发者旗下常常有多个安卓应用和多形态应用(快应用和Web应用......
  • git部署django上线
    网站部署上线需要环境:centos需要的依赖组件:python3.9先下载wgethttps://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz解压编译安装tar-xvfPython-3.9.5......
  • docker-compose 安装 LDAP+phpLDAPadmin
    docker-compose安装LDAP+phpLDAPadmin1、docker-compose.ymlversion:'2'services:#ldap服务openldap:image:osixia/openldapcontainer_name:op......
  • SpringBoot 项目使用 Sa-Token 完成登录认证
    一、设计思路对于一些登录之后才能访问的接口(例如:查询我的账号资料),我们通常的做法是增加一层接口校验:如果校验通过,则:正常返回数据。如果校验未通过,则:抛出异常,告知其需......
  • Django笔记十一之外键查询优化select_related和prefetch_related
    本篇笔记目录如下:select_relatedprefetch_related在介绍select_related和prefetch_related这两个函数前,我们先来看一个例子。对于,Entry和Blog这两个model,前......
  • 请求需要登录的接口
    <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.75</version></dependenc......
  • django 批量创建bulk_create和批量更新bulk_update
    一、为什么要用bulk_create和bulk_update以创建1万个对象为例,相比save()循环和save()事务,bulk_效率是save()循环保存的百倍,是事务处理的近10倍:#创建model(MyModel),此处......
  • Django区分大小写(mysql)
    Django区分大小写注:django区分大小写前mysql区分大小写1、区分大小写方法model:ReleaseClientMsgModel固定写法:binary数据库字段:client_name%s.#%s变量......
  • django 日志配置
     settings.py#日志配置importloggingLOGGING={'version':1,#版本号默认1'disable_existing_loggers':False,#是否关掉第三方模块的日志功能......