首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django Admin表单,设置只读字段(用户外键字段)的默认值

Django Admin是Django框架提供的一个强大的后台管理界面,可以方便地管理数据库中的数据。在Django Admin中,我们可以设置字段的默认值来简化数据录入过程。对于只读字段(例如用户外键字段),我们可以通过重写Admin表单的get_readonly_fields方法来设置其默认值。

首先,我们需要在admin.py文件中定义一个Admin类来管理我们的模型。然后,我们可以在该Admin类中重写get_readonly_fields方法来设置只读字段的默认值。

以下是一个示例:

代码语言:txt
复制
from django.contrib import admin
from .models import YourModel

class YourModelAdmin(admin.ModelAdmin):
    readonly_fields = ('user',)  # 设置只读字段
    exclude = ('user',)  # 将只读字段从表单中排除

    def get_readonly_fields(self, request, obj=None):
        if obj:  # 编辑已存在的对象时
            return self.readonly_fields + ('user',)
        return self.readonly_fields

admin.site.register(YourModel, YourModelAdmin)

在上述示例中,我们定义了一个YourModelAdmin类来管理YourModel模型。我们将'user'字段设置为只读字段,并通过exclude属性将其从表单中排除。然后,我们重写了get_readonly_fields方法,在编辑已存在的对象时,将'user'字段添加到只读字段中。

这样,当我们在Django Admin中创建或编辑YourModel对象时,'user'字段将自动设置为默认值,并且无法编辑。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法给出具体的链接。但是,腾讯云提供了一系列云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。您可以访问腾讯云官方网站,了解更多关于腾讯云的产品和服务信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django-xadmin根据当前登录用户动态设置表单字段默认值方式

相信你一定会设置一个普通字段默认值: class Offer(models.Model): salary = models.CharField(max_length=64, blank=True,...default=’6000′, verbose_name=’薪资待遇’) 相信你还能动态设置字段默认值: class Interview(models.Model): department...如果我想根据当前登录用户身份来动态设置默认值呢? 要解决这个问题就不能从数据库层面来设置了,而要在adminx.py文件中去设置。...补充知识:Django通过Ajax利用FormData动态提交表单(包括文件,字符串) 0 需求背景 有的时候我们上传表单,经过后台处理之后再分发回原来页面,这时必定会刷新这个页面。...以上这篇django-xadmin根据当前登录用户动态设置表单字段默认值方式就是小编分享给大家全部内容了,希望能给大家一个参考。

1.9K20

django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段使用

需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带admin管理器,那么该字段admin...DateTimeField.auto_now_add 这个参数默认值也为False,设置为True时,会在model对象第一次被创建时,将字段设置为创建时时间,以后修改对象时,字段值不会再更新...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin字段也会成为只读。 ?...editable=False将导致字段不会被呈现在admin中,blank=Ture表示允许在表单中不输入值。...实际场景中,往往既希望在对象创建时间默认被设置为当前值,又希望能在日后修改它。怎么实现这种需求呢? django中所有的model字段都拥有一个default参数,用来给字段设置默认值

7.2K80
  • Django模型

    ,确保是有效图片 下面是字段类型中参数 字段类型参数 参数 说明 null 如果为True,表示允许为空,默认值是False blank 如果为True,则该字段允许为空白,默认值是False...null参数是数据库层面的,设置null=True之后,表示数据库字段可以为空;blank参数是表单层面(HTML),blank=True之后,表示表单填写该字段时候可以不填。...外:通过使用models.ForeignKey来设置,ForeignKey第一个参数是要关联模型类名,第二个参数是on_delete。...,仅在该字段null=True允许为null时可用 SET_DEFAULT设置默认值,仅在该字段设置默认值时可用 SET()设置为特定值或者调用特定方法 DO_NOTHING不做任何操作,如果数据库前置指明级联性...,此选项会抛出IntegrityError异常 注意:我们在数据库中,设置时候需要制定另一张表中关联字段,但是在Django里并没有指定。

    1.9K20

    Python Django开发 经验技巧总结(一)

    auto_now: 这个参数默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带admin管理器,那么该字段admin...中是只读。...auto_now_add: 设置为True时,会在model对象第一次被创建时,将字段设置为创建时时间,以后修改对象时,字段值不会再更新。该属性通常被用在存储“创建时间”场景下。...与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin字段也会成为只读

    1.4K10

    python测试开发django-20.添加创建时间DateTimeField

    这三个field有着相同参数auto_now和auto_now_add auto_now_add 默认值为fals 这个参数默认值为False,设置为True时,会在model对象第一次被创建时,将字段设置为创建时时间...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin字段也会成为只读。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值; 如果使用django自带admin管理器,那么该字段在...admin中是只读。...editable=False将导致字段不会被呈现在admin中,blank=Ture表示允许在表单中不输入值 admin.py注册表 在admin.py添加注册表信息,然后执行下面两句,同步数据库 python

    1.2K20

    python测试开发django-20.添加创建时间DateTimeField

    这三个field有着相同参数auto_now和auto_now_add auto_now_add 默认值为fals 这个参数默认值为False,设置为True时,会在model对象第一次被创建时,将字段设置为创建时时间...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin字段也会成为只读。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值; 如果使用django自带admin管理器,那么该字段在...admin中是只读。...editable=False将导致字段不会被呈现在admin中,blank=Ture表示允许在表单中不输入值 admin.py注册表 在admin.py添加注册表信息,然后执行下面两句,同步数据库 python

    1K20

    【Python全栈100天学习笔记】Day41 Django深入理解框架

    字段属性primary_key用于设置主键,max_length用来设置字段最大长度,db_column用来设置数据库中与字段对应列,verbose_name则设置Django后台管理系统中该字段显示名称...default 字段默认值 editable 字段在后台模型管理或ModelForm中是否显示,默认为True error_messages 设定字段抛出异常时默认消息字典,其中包括null...primary_key 将字段指定为模型主键,未指定时会自动添加AutoField用于主键,只读。...db_constraint:是否为外创建约束,默认值为True。...SET_DEFAULT:把外设置默认值,提供了默认值才能这么做。 ManyToManyField属性 symmetrical:是否建立对称多对多关系。

    2.3K30

    37.Django1.11.6文档

    如果指定字段,每个字典将只包含指定字段/值。 如果没有指定字段,每个字典将包含数据库表中所有字段和值。...此外,生成每个表单字段都有以下属性集: 如果模型字段设置了blank=True,那么表单字段required字段设置为False值。 否则,required=True。...表单字段verbose_name 设置为模型字段label,并将第一个字母大写。 表单字段help_text 设置为模型字段help_text。...如果使用上面两种方法,表单字段出现顺序将和字段在模型中定义顺序一致,其中ManyToManyField 出现在最后。 (3)覆盖默认字段 上文字段类型表中默认字段类型只是合理默认值。 ...widgets={"title": Textarea()}) 表单包含字段可以 Meta或ModelForm关键字参数说明,或者exclude内部fields类相应属性说明。

    24.3K80

    Django 做个小后台,细节在完善一点点【附源码】

    ["title"] [d5f78163b5164747968049b341ff8dc7~tplv-k3u1fbpfcp-zoom-1.image] 只读字段Django 中,可以设置某些字段不被修改...例如,我们将发布时间设置只读字段。...修改 admin.py 文件中代码: @admin.register(Blog) class BlogAdmin(admin.ModelAdmin): # list_display 用于设置列表页展示哪些字段...常见属性如下 list_display:列表显示字段筛选; search_fields:搜索字段筛选; readonly_fields:设置只读字段; ordering:排序字段; fields:表单页显示字段...; exclude:表单页不显示字段; list_filter:边栏筛选; list_editable:列表页可编辑字段设置; list_per_page:列表页显示条数; empty_value_display

    41430

    Django 学习笔记之模型高级用法(上)

    2.1 ForeignKey 1) on_delete 在 Django 2.0 中,设置时需要添加一个 on_delete选项。外本身涉及到两个表数据,况且外在数据库中是有约束行为。...SET_NULL: 置空模式,删除时候,外字段设置为空,前提就是`blank=True, null=True`,定义该字段时候,允许为空。...SET_DEFAULT: 置默认值,删除时候,外字段设置默认值,所以定义外时候注意加上一个默认值。 SET(): 自定义对应实体值。...2)limit_choices_to 该参数用于限制外所能关联对象,只能用于 Django ModelForm(Django表单模块)和 admin 后台,对其它场合无限制功能。...editable:设置字段是否能被编辑,默认是 True。如果设为 False , 这个字段将不会出现在 admin 或者其他 ModelForm 中。 同时也会跳过 模型验证 。

    2K30

    django_2

    ·渲染管理表单时使用默认html控件 ·在管理站点最低限度验证 ·django会为表增加自动增长主键列,每个模型只能有一个主键列, 如果使用选项设置某属性为主键列后,...(多) ·当对象第一次被创建时自动设置当前时间, 用于创建时间戳,它总是使用当前日期,默认为false ·说明 ·该字段默认对应表单控件是一个TextInput...·当对象第一次被创建时自动设置当前时间, 用于创建时间戳,它总是使用当前日期,默认为false ·说明 ·该字段默认对应表单控件是一个TextInput....·如果为True,则该字段允许为空白,默认值是 False ·注意 ·null是数据库范畴概念,blank是表单验证证范畴 ·db_column ·字段名称,如果未指定,则使用属性名称...student.sgrade_id 总结 项目和app生成 django-admin startproject Demo django-admin startapp App / python manager.py

    3.6K30

    Django教程 —— 模型类详解

    : 当前选择数据库支持字段类型 渲染管理表单时使用默认html控件 在管理站点最低限度验证 Django 会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后...blank 如果为True,则该字段允许为空白,默认值是False。 db_column 字段名称,如果未指定,则使用属性名称。...primary_key 若为True,则该字段会成为模型主键字段默认值是False。 unique 如果为True, 这个字段在表中必须有唯一值,默认值是False。...editable bool 类型,在Admin里是否可编辑, help_text 在 Admin 中提示帮助信息 upload_to 指文件上传到哪个位置 null 是数据库范畴概念,blank 是表单验证范畴...大自然数百亿年创造出我们现实世界,而程序员几百年创造出一个完全不同虚拟世界。

    1.7K20

    django框架菜鸟教程_django框架菜鸟教程

    大家好,又见面了,我是你们朋友全栈君。 Django 一、介绍 1、简介 是python语言写开源web开发框架,并遵循MVC设计。...,默认值) 可简写为 dict[‘’] # 说明: # 如果一个同时拥有多个值将获取最后一个值 # 如果不存在则返回None值,可以设置默认值进行后续处理 方法getlist():根据获取值...,值以列表返回,可以获取指定所有值 如果不存在则返回空列表[],可以设置默认值进行后续处理 dict.getlist(‘’,默认值) 3)查询字符串 通过request.GET属性获取,返回...如果为None则表示使用浏览器默认设置,一般为utf-8。 这个属性是可写,可以通过修改它来修改访问表单数据使用编码,接下来对属性任何访问将使用新encoding值。...如果value为None,那么session有效期将采用系统默认值,默认为两周,可以通过在settings.py中设置SESSION_COOKIE_AGE来设置全局默认值

    3K40

    【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

    2) 关于主键 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列。...若为True,则该字段会成为模型主键字段默认值是False,一般作为AutoField选项使用 unique 如果为True, 这个字段在表中必须有唯一值,默认值是False null是数据库范畴概念...,blank是表单验证范畴 6) 外设置时,需要通过on_delete选项指明主表删除数据时,对于外引用表数据如何处理,在django.db.models中包含了可选常量: CASCADE...级联,删除主表数据时连通一起删除外表中数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被外应用数据 SET_NULL设置为NULL,仅在该字段null=True...允许为null时可用 SET_DEFAULT设置默认值,仅在该字段设置默认值时可用 SET()设置为特定值或者调用特定方法 DO_NOTHING不做任何操作,如果数据库前置指明级联性,此选项会抛出IntegrityError

    1.4K20

    Python:Django框架

    查看并理解这个文件中可用设置类型及其默认值。 urls.py:Django项目的URL设置。 可视其为你django网站目录。...boolean 值,如果为True将为此字段创建索引 default 给当前字段设置默认值 editable boolean 值,如果为false,admin模式下将不能改写。...primary_key 设置当前字段为主键,如果没有设置主键django创建表时会自动id主键 radio_admin 用于 admin 模式下将 select 转换为 radio 显示。...中注册 ```python @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): #设置要显示在后台列表中字段...readonly_fields = (‘cover_preview’,)#只读字段,添加该字段才能在后台编辑页预览封面,否则报错 fieldsets = ( #后台文章编辑页面排版

    4.4K40

    Django 3.1 官网学习路线

    字段还可以有各种可选参数;在本例中,我们将投票默认值设置为 0。 最后,请注意使用外定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外字段名。(是的,你也可以重写这个。) 外关系是通过外约束来显式。...通常,您需要定制管理表单外观和工作方式。可以通过在注册对象时告诉 Django 所需选项来实现。 通过重新排列编辑表单字段来了解其工作原理。...说到几十个字段表单,你可能想把表单分成字段集: from django.contrib import admin from .models import Question class QuestionAdmin...“添加选择”表单如下所示: 在该表单中,“Question”字段是一个选择框,包含数据库中每个问题。Django 知道一个外应该在管理中表示为一个框。在我们例子中,目前只存在一个问题。

    8.2K10

    Django项目知识点(三)

    这个设置让你在使用modelManager上lastest方法时,默认使用指定字段来排序 managed 默认值为True,这意味着Django可以使用syncdb和reset命令来创建或移除对应数据库...Django自动为每个设置admin对象创建添加,删除和修改权限。...abstract = True 字段常用参数 null 如果是True,Django会在数据库中将此字段值置为NULL,默认值是False blank 如果为True时django...default 默认值 verbose_name   Admin字段显示名称,如果不设置该参数时,则与属性名。...PROTECT:此值设置,是会报完整性错误。 SET_NULL:此值设置,会把外设置为null,前提是允许为null。 SET_DEFAULT:此值设置,会把设置为外默认值

    1.9K30
    领券