django-自带admin后台如何给某些field赋默认值(比如user=request.user)然后隐藏它

其实整天看英文文档也是有坏处的,我中文都不知道怎么表达了,看我题目多别扭

直接上代码:

models.py

class Tag(models.Model):
    name = models.CharField(max_length=50)
    owner = models.ForeignKey(User)
    def __unicode__(self):
        return self.name

admin.py

class TagAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        obj.owner = request.user
        obj.save()
    def get_form(self, request, obj=None, **kwargs):
        self.exclude = ("owner", )
        form = super(TagAdmin, self).get_form(request, obj, **kwargs)
        return form

admin.site.register(Tag, TagAdmin)

save_model可以保存Tag的owner为当前user,没错,ModelAdmin可以获得request

get_form的重载可以隐藏owner这个field免得用户误修改(其实就是修改了,点保存的那一刻用户还是会变成当前用户

至于为什么非要用它自带后台来更新Tag,可以看这里

效果图:

如何出现的,请看上一篇帖子

时间: 2024-10-11 09:25:40

django-自带admin后台如何给某些field赋默认值(比如user=request.user)然后隐藏它的相关文章

Linux下开发python django程序(设置admin后台管理模块)

1.新建项目和项目下APP django-admin startproject csvt03 django-admin startapp app1 2.修改settings.py文件 设置默认安装APP INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages

Django集成TinyMCE(admin后台+前台)

Django版本1.11,操作系统windows 7,在pycharm的terminal中使用pip install django-tinymce下载tinymce(前提是装的python里有pip功能),当然也可以手动下载好后python setup.py install进行安装. 在网上找了好多资料,有说什么新创建个textarea.js什么的云云,还要新创建个static文件什么的,感觉挺麻烦的,因此把我的方法分享给大家. 找到使用pip安装的django-tinymce,如果没有更改路径

Django自带的后台管理系统

1.准备工作: 1-1.创建django项目和应用 1-2.修改settings.py配置文件: #应用配置: INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.A

Linux下开发python django程序(设置admin后台管理上传文件)

1.项目创建相关工作参考前面 2.在models.py文件中定义数据库结构 import django.db import modelsclass RegisterUser(models.Model): username=models.CharField(max_length=30) headImg = models.FileField(upload_to='./upload/') def __unicode__(self): return self.username 3.生成数据库 pytho

jsp页面向后台传递 不赋值 传递的默认值

<input type="hidden" name="leaderIdentity" value="${subject.leaderId }" /> 生成的代码是<input type="hidden" name="leaderIdentity" value /> 向后台传递的leaderIdentity 为0 像select checkbox radio这样的不赋值就为null f

Django学习:创建admin后台管理站点

Django自带一个后台管理站点,方便我们管理数据.这个界面只给管理员使用,并不对大众开放. 创建管理员用户 py manage.py createsuperuser 如下图所示: 用户名不填的话,默认使用administrator名称 邮箱可以不填 密码在输入过程中是不会显示的.如果你的密码强度不够,它会警告你是否要使用该密码.因为我输入的是1234567890,所以你觉得ok的话,直接yes它也会让你通过. 启动开发服务器,并进入admin界面 py manage.py runserver

C++函数带默认值的几种情形

1. 默认参数的规则 默认值定义 C++支持函数参数带默认值.这里所谓的默认值,指的是在调用函数时,可以不指定某些参数,编译器会自动把默认值传递到函数调用中. 默认值位置 指定默认值的参数必须位于形参列表最右端,从右往左.否则会出现二义性,编译器无法处理. 默认值设置 默认值可以在函数声明或函数定义中设置,只要保证不出现参数重定义即可. 2.默认参数示例 在函数声明中设置默认值 这是最常见的一种情形.主要有以下两种声明方式: 声明中给参数赋默认值 声明中用类型指定默认值 float area(f

Django打造在线教育平台_day_3: 搭建后台管理系统Django自带的admin

1.后台管理系统的特点:权限管理.少前端样式.快速开发 2.Django自带的admin后台管理系统,新建项目时会自动建立,admin也可以看成一个app 运行了程序打开链接:http://127.0.0.1:8000/admin/,就进入了后台管理系统登录页面 3.新建超级用户: Tools 工具栏运行 run manage.py Task 输入:createsuperuser,再根据提示输入用户名.邮箱.密码 4.登录成功: 5.把系统语言设置为中文与设置本地时间:修改MxOnline/se

Django Admin后台管理模块的使用

Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django.contrib.sessions django.contrib.comments 激活admin模块的方法是: 1. 在INSTALLED_APPS设置文件中,加入'django.contrib.admin' 2. 再添加 'django.contrib.auth', 'django.contri