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

在GenericForeignKey管理中显示只读Django值

在Django中,GenericForeignKey是一种特殊的关联字段,它允许模型与任意其他模型建立关联。然而,在默认情况下,GenericForeignKey字段在管理界面中只显示为一个文本框,用户无法直接编辑其值。如果我们希望在管理界面中显示GenericForeignKey字段的只读值,可以通过以下步骤实现:

  1. 创建一个自定义的ModelAdmin类,用于管理包含GenericForeignKey字段的模型。
代码语言:txt
复制
from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    readonly_fields = ['get_generic_foreign_key_value']

    def get_generic_foreign_key_value(self, obj):
        # 通过obj获取GenericForeignKey字段的值
        # 返回值将显示在管理界面中
        return obj.content_object

    get_generic_foreign_key_value.short_description = 'GenericForeignKey Value'
  1. 将自定义的ModelAdmin类应用到相关的模型。
代码语言:txt
复制
from django.contrib import admin
from django.contrib.contenttypes.admin import GenericTabularInline
from .models import MyModel, MyRelatedModel

class MyRelatedModelInline(GenericTabularInline):
    model = MyRelatedModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    inlines = [MyRelatedModelInline]

在上述代码中,我们创建了一个自定义的ModelAdmin类MyModelAdmin,并定义了一个名为get_generic_foreign_key_value的方法,该方法通过obj参数获取GenericForeignKey字段的值,并将其返回。我们还将get_generic_foreign_key_value方法添加到readonly_fields列表中,以确保其只读显示在管理界面中。

然后,我们将自定义的ModelAdmin类应用到相关的模型MyModel上,通过@admin.register(MyModel)装饰器将MyModelAdminMyModel关联起来。如果有其他相关模型,可以使用GenericTabularInlineGenericStackedInline将其添加到inlines列表中。

这样,当我们在Django的管理界面中查看MyModel对象时,GenericForeignKey字段的只读值将显示在GenericForeignKey Value列中。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议您参考腾讯云的官方文档和网站,了解他们提供的云计算服务和解决方案。

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

相关·内容

Excel图表技巧16:图表突出显示最大

学习Excel技术,关注微信公众号: excelperfect 本文讲解一种图表中高亮显示最大的技巧。 如下图1所示的数据。 图1 插入一个柱形图,默认如下图2所示。...图2 要突出显示Excel图表,只需添加一个带有要突出显示的额外系列。假设想要突出显示销量最大的产品,添加一个额外的列来计算,如下图3所示。 图3 现在,图表变为如下图4的样子。...图4 虽然这以不同的颜色突出显示了最大,但不完整,我们只需要删除原始。或者,可以简单地将一个系列重叠在另一个之上。 选择图表系列并进行格式化设置(单击系列选择,然后按CTRL+1组合键)。...现在,将系列重叠设置为100%,突出显示最大,如下图5所示。 图5 同样,也可以突出显示折线图的最大,如下图6所示。...图6 可以应用此技术来突出显示各种元素,例如:最小、高于平均值、满足特定目标的、用户选择。 undefined 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

3.3K30

如何让数据PBI智能化显示 - 效果

矩阵数据的智能化显示 用户希望矩阵的数据可以根据自己的大小自行判断并给出紧凑的显示,如下: 大部分的产品的年销售额都是几十万规模,用英文规范显示,就是多少 K ,而总计则超过了百万,则应该显示为...中英文智能化显示 【英文智能化显示模式】 【中文智能化显示模式】 以上,可以充分理解智能化显示的特性好处是: 根据的大小,自动判断单位及显示方式。 可能出现 K,M,B 同时存在的情况。...如果你认为这种方法只是对矩阵文本的处理,那就错了,因为除了矩阵外,我们还需要对图表(如:柱形图)的显示做智能化处理,如下: 向下钻取后,如下: 如果切换到中文模式,如下: 这样一来,矩阵和图表的数据都可以得到正确合理的显示...自动智能模式 除了实现上述需求,我们还需要做更细致的控制,如下: 使用 Auto 模式下,所有数值可以正确完美智能显示。还可以看出智能模式大幅度节省了空间。...负值智能颜色 对于利润,就存在负值,需要有更自动的适配,如下: 颜色的显示上得到了完美的处理。

3.8K30

django admin详情表单显示添加自定义控件的实现

开发中有需求详情显示里外键字段内容,并且添加按钮弹窗内容,以及按钮跳转内容。...form自带了widget控件,比如我想在里面添加一个按钮,记录用户的积分消耗情况,那么就可以类名下直接添加: from django.forms import widgets class AForm...这个时候我们就可以详情内看见button了,但是相对应的,detail的表单添加后,add的表单也会出现一个button,这个不是我们想要的,所以就要想办法让button只存在于detail界面...而弹出窗口的获取可以form添加一个hidden字段,value为我们想要获取的js取值赋值即可。...刷新页面即可; 以上这篇django admin详情表单显示添加自定义控件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考。

4.9K20

Django——ContentType(与多个表建立外键关系)及ContentType-signals的使用

一、ContentType  django,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的...要实现这种功能可以动作发生的代码里实现也可以通过数据库触发器等实现,但在django,一个很简单的方法的就是使用signals。   ...*首先用信号机制,监听信号,实现对信号的响应函数,响应函数记录发生的动作(记录在一张记录表,相当于下文的Event)。   ...前面说到django保存一个object的时候会发出一系列signals,在这里我们所监听的是signals.post_save这个signal,这个signal是django保存完一个对象后发出的...,django已定义好得一些signal, django/db/models/signal.py可以查看,同时也可以自定义信号。

4.3K20

Django实战-调查问卷表设计优化

django,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的id和一个具体表的id找到任何记录...在上一个 调查问卷表设计 ,实现了简单的问卷系统并生成问卷记录。一个问卷系统主要包括:问卷,问卷每个题目,每个题目的答案,以及生成问卷记录。...为此,可以利用Django自带的ContentType类,来做这件事情。...from django.db import models from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation...('content_type', 'object_id') # 这个字段不会再数据库存在,只是查询时有用 date = models.DateTimeField(verbose_name=

1.8K20

Django实战-Signals 信号量

要实现这种功能可以动作发生的代码里实现,也可以通过数据库触发器等实现,但在django,可以使用signals。...记录每个操作,同时还能追踪到这个操作的具体动作: ① 用信号机制,监听信号,实现对信号的响应函数,响应函数记录发生的动作。...② 为了能追踪到操作的具体动作,必须从这张表得到相应操作的model,这就得用ContentType。...新鲜事这个功能上,使用GenericRelation来产生一个特殊的外键,它不像models.ForeignKey那样,必须指定一个Model来作为它指向的对象,GenericRelation可以指向任何...on_delete=models.SET_NULL) object_id = models.PositiveIntegerField() content_object= fields.GenericForeignKey

72930

Django admin 一些有用的设置

Django自带的后台管理Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以各个app的admin.py文件中进行控制。以下是我最近摸索总结出比较实用的配置。...一、基本设置 1、应用注册 若要把app应用显示在后台管理,需要在admin.py中注册。这个注册有两种方式,我比较喜欢用装饰器的方式。 先看看普通注册方法。...import Blog    #Blog模型的管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin):     #listdisplay设置要显示列表的字段...每条数据都有 个确认标识(上图红框),如果已经确认,用户再点击进入查看信息的时候全部只读显示,即不能在做修改,如果没确认可以修改。如下: 已确认: ? 未确认: ?  ...9.自定义列表字段 上面的一对多和多对多可以数据编辑显示,但在列表没有显示。有时还需要显示一些其他东西。例如两个字段相乘计算结果等等。这些都可以通过自定义列表字段处理和显示

2.5K70

Django admin管理工具的使用、定制及源码解析

admin组件使用 Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。...激活管理工具 通常我们在生成项目时会在 urls.py 自动设置好, from django.conf.urls import url from django.contrib import admin...= 'zh-hans' TIME_ZONE = 'Asia/Shanghai' 使用管理工具 启动开发服务器,然后浏览器访问 http://127.0.0.1:8000/admin/,得到登陆界面...BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示列表的字段(id字段是Django模型的默认主键) list_display...每条数据都有 个确认标识(上图红框),如果已经确认,用户再点击进入查看信息的时候全部只读显示,即不能在做修改,如果没确认可以修改。如下: 已确认: ? 未确认: ?

4K40

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

已经发生的错误信息 该功能运用了django.contrib.messages这个库,django项目中setting.py文件APP注册部分自定义注册 INSTALLED_APPS = [...需要注意的是,设置该参数为true时,并不简单地意味着字段的默认为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django自带的admin管理器,那么该字段admin...只读的。...与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法程序手动为字段赋值,admin字段也会成为只读的。...%} 8.数据库表属性的自增/自减操作 通过相对更新的操作来更加快速、健壮地实现,而不是显示地(explicit)对新进行赋值。

1.3K10

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

Django 后台完善 列表页展示内容修改 在上一篇博客实现了列表数据展示,但是只显示了一列,并且列标题为英文,本篇博客首先解决该问题。...March 25, 2021 - 12:04:53 列表自定义列实现 除了 models.py 定义的属性,可以 list_display 进行调用,还可以自行创建列供其使用。...introduction.short_description = "内容简介" 同步修改 admin.py 的内容, list_display 中新增 introduction: @admin.register... Django ,可以设置某些字段不被修改,只读。...常见的属性如下 list_display:列表显示字段筛选; search_fields:搜索字段筛选; readonly_fields:设置只读字段; ordering:排序字段; fields:表单页显示字段

40130

Django模型最佳实践

模型中放置业务逻辑。 用.DoesNotExists取代ObjectDoesNotExists。 在数据库不要出现无效数据。 不要对QuerySet调用len()函数。...NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组的第一个是设置模型上的,第二是人类可读的 db_column...default 字段的默认 editable 字段在后台模型管理或ModelForm是否显示,默认为True error_messages 设定字段抛出异常时的默认消息的字典,其中的键包括null...unique 设置为True时,表字段的必须是唯一的 verbose_name 字段在后台模型管理显示的名称,未指定时使用字段的名称 ForeignKey属性 limit_choices_to:是一个...on_delete:外键关联的对象被删除时对应的动作,可取的包括django.db.models定义的: CASCADE:级联删除。

2.2K40

Django的BooleanField支持字符串形式的输入方式

Django,你可以把字符串形式的数值赋值给IntegerField,然后Django会默认把字符串转换成int。...但是BooleanField则不行,BooleanField只能接受True和False,或者0和1(BTW:pythonTrue即是1,False即是0)。...一个典型的场景是使用Swfit的Alamofire框架的upload来上传Multipartform时,由于form参数只能添加Data形式的参数,直接将Bool型转化成Data会非常麻烦,带来编码类型的问题...补充知识:Dajango xadmin 设置只读字段,设置BooleanField类型页面显示位置 class MachineInfoAdmin(admin.ModelAdmin): def...fa-check-square' # 设置字段可以直接在列表页修改 list_editable=['desc','degree'] # 设置默认排序 ordering=['-click_nums'] # 设置详情页面只读显示

1.5K20
领券