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

django管理员可根据其他字段中值在字段中选择选项

Django管理员可以根据其他字段中的值在字段中选择选项。这是通过Django框架中的ForeignKeyModelAdmin实现的。

在Django中,ForeignKey是一种关系字段,用于建立模型之间的关联关系。它允许一个模型引用另一个模型的实例。当我们需要在一个模型中根据其他字段的值来选择选项时,可以使用ForeignKey字段。

ModelAdmin中,我们可以通过重写formfield_for_foreignkey方法来实现根据其他字段中的值在字段中选择选项的功能。这个方法会在创建或编辑对象时被调用,可以用来动态设置ForeignKey字段的选项。

下面是一个示例代码,演示了如何根据其他字段中的值在字段中选择选项:

代码语言:txt
复制
from django.contrib import admin
from django.forms import ModelChoiceField

from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == 'other_field':
            # 根据其他字段的值来选择选项
            other_field_value = request.GET.get('other_field_value')
            if other_field_value:
                kwargs['queryset'] = MyModel.objects.filter(other_field=other_field_value)
            else:
                kwargs['queryset'] = MyModel.objects.none()
            return ModelChoiceField(**kwargs)
        return super().formfield_for_foreignkey(db_field, request, **kwargs)

admin.site.register(MyModel, MyModelAdmin)

在上述代码中,我们重写了formfield_for_foreignkey方法,并根据other_field_value参数的值来动态设置ForeignKey字段的选项。如果other_field_value有值,则根据该值过滤MyModel对象,否则返回一个空的查询集。

这样,当我们在Django管理员界面中创建或编辑MyModel对象时,根据其他字段中的值,other_field字段的选项会动态改变。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。您可以通过以下链接了解更多关于腾讯云服务器和腾讯云数据库的信息:

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

相关·内容

Django Admin后台管理

Django通过简单配置就可以实现数据模型的后台管理。一般管理界面是给系统管理员使用的,以完成数据的CURD。 1.本地化 将语言和时区本地化,修改settings.py文件。...(admin.ModelAdmin): # 每页显示的数据量 list_per_page = 10 # 操作选项在顶部是否显示 actions_on_top = True...(admin.ModelAdmin): # 每页显示的数据量 list_per_page = 10 # 操作选项在顶部是否显示 actions_on_top = True...# 操作选项在底部是否显示 actions_on_bottom = True # 自定义列表页显示的列表项 list_display = ['id', 'name',...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式的文字,如编辑对商品的详细信息描述,就需要使用富文本编辑器。这里以tinymce为例在Django Admin后台中如何使用富文本编辑器。

2.8K10

Django 3.1 官网学习路线

path() argument: name 通过命名 URL,您可以从 Django 的其他地方明确地引用它,特别是在模板中。...它包含这个 Django 实例中激活的所有 Django 应用程序的名称。应用程序可以在多个项目中使用,您可以将它们打包并分发给他们项目中的其他人使用。...在本例中,我们仅为 Question.pub_date 定义了一个人类可读的名称。对于此模型中的所有其他字段,该字段的机器可读名称将足以作为其人类可读的名称。 一些 Field 类具有必需的参数。...可以通过在注册对象时告诉 Django 所需的选项来实现。 通过重新排列编辑表单中的字段来了解其工作原理。...Choice, Question # ... admin.site.register(Choice) 现在,“选择”是 Django 管理员中的可用选项。

8.2K10
  • django2实战2.创建博客应用创建应用文章表的字段设计激活应用开启后台将post模型注册到后台自定义文章显示字段增加可选操作

    而淘宝下的聚划算属于一个应用 在django中,一个应用是由模型、视图、模板以及url配置组成的。...文章创建时间,auto_now_add 表示当文章创建时,会自动生成该时间 updated: 文章更新时间,当文章被更新时,会自动生成更新的时间 status: 文章状态,从STATUS_CHOICES中选取状态值...OK 开启后台 进入后台的第一步是创建管理员 ☁ mysite python manage.py createsuperuser Username (leave blank to use 'long...post显示的字段 增加可选操作 mysite/blog/admin.py from django.contrib import admin from .models import Post @admin.register...搜索 侧边栏过滤选项 ? 过滤 下一节将讲解如何使用django的模型查询语句。

    1.1K30

    django 学习笔记一

    from django.conf import settings if settings.DEBUG: # Do something 完整的设置清单和各个字段的结束 联想 如果有其他的配置,...也可以放在 setting 中 自定义设置要求 设置名称全部是大写 不要使用一个已经存在的设置 global_setting.py 目录中并没有此文件,此文件路径在 django/conf/global_setting...的不同 ---- 在官方文档中 也说明了其他方法设置 “设置文件的路径” Mac 中有两种方式: # 第一种 export DJANGO_SETTINGS_MODULE=mysite.settings...你可以通过在注册对象的时候告知Django一些你想要的选项来完成。 让我们通过对编辑表单上的字段重新排序来看一下它是如何工作的。...上面的特定的更改,使得“Publication date”字段排在“Question”字段前面 为每个字段分组 from models import Question class QuestionAdmin

    1K20

    学习版pytest内核测试平台开发万字长文入门篇

    后面的代码就集中在serializers.py和views.py两个文件,序列化器提供数据库表字段和响应json的序列化和反序列化,视图使用序列化器,编写业务处理代码。...is_staff表示是否为管理员,这个名字是Django定的。再写views.py: ?...首先写user表,根据角色名是否包含管理员,判断是否写is_staff字段,接着用入库后产生的user_id写user_role表。注意最后一行的status,新增的话,状态码返回201。...在新增用户的时候,需要从角色列表中选择角色,需要后端提供这样的接口,使用ListAPIView: ?...填写Mock Server的名字为hello,其他选项默认,点击Create Mock Server进行创建: ? 关闭后,Mock Server就建好了: ?

    5K30

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

    其他的配置可以参考官方文档中数据库配置的部分。...如果对这些东西感到很困惑也不要紧,文末提供了字段类、字段属性、元数据选项等设置的相关说明,不清楚的读者可以稍后查看对应的参考指南。 再次执行迁移操作,先通过模型生成迁移文件,再执行迁移创建二维表。...创建超级管理员账号。...可以在管理员平台对模型进行C(新增)、R(查看)、U(更新)、D(删除)操作,如下图所示。 添加新的部门。 665ddf808ac54b02b55f8187e557de82.png 查看所有部门。...通用字段属性 选项 说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组中的第一个值是设置在模型上的值

    2.3K30

    Django管理应用程序的高级配置在BookInstance模型的运用【Django】

    Django管理应用程序 Django管理应用程序可以使用的模型自动构建可用于创建、查看、更新和删除记录的站点区域。这可以在开发过程中节省大量时间,使测试模型和查看是否有正确的数据变得容易。...Django项目只建议用于内部数据管理(也就是说,仅适用于组织的管理员或内部人员),因为以模型为中心的方法不一定是所有用户的最佳界面,并且暴露了许多关于模型的不必要的细节。...Register the admin class with the associated model admin.site.register(Author, AuthorAdmin) 为每个记录添加显示的其他字段...向列表视图中的操作菜单添加其他选项,并选择此菜单在表单上的显示位置。 详细信息视图 选择要显示(或排除)的字段、它们的顺序、分组、可编辑、要使用的小部件、方向等。...向记录中添加相关字段以允许内联编辑(例如,在创建作者记录时添加添加和编辑书本记录的功能)。

    1.7K20

    django 1.8 官方文档翻译: 1-2-2 编写你的第一个Django应用,第2部分

    网站管理员使用这个系统来添加新闻、事件、体育成绩等等, 而这些内容会在公共网站上显示出来。Django 解决了为网站管理员创建统一 的管理界面用以编辑内容的问题。 管理界面不是让网站访问者使用的。...它是为网站管理员准备的。 启用管理网站 默认情况下 Django 管理网站是不启用的 – 它是可选的。...你将看到管理员的登录界面: 和你看到的不一样?...这很简单: from polls.models import Choice admin.site.register(Choice) 现在 “Choices” 在 Django 管理网站上是一个可用的选项了...要做到这一点,需要使用 list_display 管理选项,这是一个 tuple ,包含了要显示的字段名, 将会以列的形式在该对象的 chang lsit 页上列出来:: class PollAdmin

    2.5K40

    Django 1.10中文文档-第一个应用Part2-模型和管理站点

    INSTALLED_APPS中是Django实例中所有Django应用的名称。应用可以在多个项目中使用,而且你可以将这些应用打包和分发给其他人在他们的项目中使用。...对于此模型中的所有其他字段,该字段的机器可读名称将足以作为其通俗名称。 有些Field类具有必需的参数。例如,CharField要求你给它一个max_length。...在处理字段名的引号时也是如此 —— 例如,使用双引号还是单引号; sqlmigrate命令并不会在你的数据库上真正运行迁移文件 —— 它只是把Django 认为需要的SQL打印在屏幕上以让你能够看到...Django是在一个新闻编辑室的环境中编写的,“内容发布者”和“公共”网站之间有着非常明确的区分。 网站管理员使用系统添加新闻故事,事件,体育等,并且该内容显示在公共网站上。...在页面的底部,则是一些可选项按钮: Save —— 保存更改,并返回当前类型对象的变更列表界面; Save and add another:保存当前修改,并加载一个新的空白的当前类型对象的表单

    2.3K60

    Django Admin后台管理:高效开发与实践

    第2章:深入Django Admin 2.1 Admin界面定制 Django Admin提供了丰富的定制选项,允许开发者根据项目需求调整界面。...配置选项:在Admin类中,可以设置各种选项,如list_display用于指定列表页面显示的字段,search_fields用于添加搜索框等。...2.3 字段和字段集的管理 字段管理:可以在Admin类中使用fields或fieldsets属性来控制编辑页面中字段的显示。...用户模型:Django提供了一个默认的用户模型,包含用户名、密码和电子邮件等字段。 3.2 用户、组和权限的管理 用户管理:在Django Admin中,可以创建、编辑和删除用户。...后续章节将进一步探讨如何结合Django的其他功能来构建复杂的应用程序。

    26010

    Django 定义模型2.1

    定义模型 在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django...会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式...,不允许使用连续的下划线 定义属性 定义属性时,需要字段类型 字段类型被定义在django.db.models.fields目录下,为了方便使用,被导入到django.db.models中 使用方式...在管理员站点添加了一个JavaScript写的日历控件,和一个“Today"的快捷按钮,包含了一个额外的invalid_date错误消息键 auto_now_add, auto_now, and default...ImageField:继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image 字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null

    1.2K30

    django_2

    ·渲染管理表单时使用的默认html控件 ·在管理站点最低限度的验证 ·django会为表增加自动增长的主键列,每个模型只能有一个主键列, 如果使用选项设置某属性为主键列后,...则django不会再生成默认的主键列 ·属性命名限制 ·遵循标识符规则 ·由于django的查询方式,不允许使用连续的下划线 库 ·定义属性时,需要字段类型,字段类型被定义在...·ImageField ·继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image 上两个字段依赖pillow 字段选项 ·概述 ·通过字段选项...html控件 ·在管理站点最低限度的验证 ·django会为表增加自动增长的主键列,每个模型只能有一个主键列, 如果使用选项设置某属性为主键列后, 则django不会再生成默认的主键列...·ImageField ·继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image 字段选项 ·概述 ·通过字段选项,可以实现对字段的约束

    3.6K30

    Django之Model世界

    推荐使用这个字段而不要用 BooleanField 加 null=True 选项....' 2、连表结构(当我们在类中写上这样的字段后,就会为我们自动创建一张关系表) 一对多: models.ForeignKey(其他表) 一对多: 就是主外键关系 多对多: models.ManyToManyField...(其他表) 多对多:多个主外键的关系 一对一:models.OneToOneField(其他表) 一对一:实质就是在主外键的关系基础上,给外键加了 问:什么是一对一,一对多,多对多?...) # 在表里插入数据(两种都是在表里插入数据) user_dict = {'caption': '超级管理员'} models.UserType.objects.create(*...(caption='普通用户') # 在表里插入数据(两种都是在表里插入数据) user_dict = {'caption': '超级管理员'} models.UserType.objects.create

    2.3K20

    「GIS教程」使用 ArcGIS 统计特定区域内点数

    文 / 南瑥月 Bilbil up 主 在实际工作中,有时需要统计每个行政区内的点状地物数量。...操作步骤 先加载点状图层和面状图层 然后打开分析工具,叠加分析,空间连接工具 打开后的界面如下 目标要素选择行政区划或者面文件,连接要素选要统计的择点文件。...JOIN_ONE_TO_ONE---如果找到与同一目标要素存在相同空间关系的多个连接要素,将使用字段映射合并规则对多个连接要素中的属性进行聚合。...匹配选项一般选择默认INTERSECT,也可根据具体要求自行设置(INTERSECT---如果连接要素与目标要素相交,将匹配连接要素中相交的要素。这是默认设置。在搜索半径参数中指定距离。)...具体参数设置如下 打开生成的结果图层属性表,我们发现他多了一个join count字段 通过检查发现 join后的图层里的属性项join count就是每个多边形内的点的个数

    3.4K50

    Django MVT之M

    在Django MVC概述和开发流程中已经讲解了Django的MVT开发流程,本文重点对MVT中的模型(Model)进行重点讲解。 配置MySQL数据库 确保已经安装了操作mysql的包。...更加完整的介绍参考Django 1.8.2 中文文档 字段选项 通过选项实现对字段的约束,常用选项如下: 选项 描述 default 字段默认值 primary_key 主键约束。...默认值是False,若为True,则该字段会成为模型的主键字段,一般作为AutoField的选项使用。 unique 唯一约束。默认值是False,如果为True, 这个字段在表中必须有唯一值。...如果字段设置blank=False,则该字段为必填。 更加完整的介绍参考Django 1.8.2 中文文档 注:当修改模型类之后,如果添加的选项不影响表的结构,则不需要重新做迁移。...其中选项default和blank不影响表结构。 查询 函数 Django通过模型的objects对象实现模型数据查询,通过模型类.objects.函数调用如下函数来实现对数据库的查询。

    1K10

    Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为中的name 注意:FILES只有在请求的方法为...ok") else: return HttpResponse("error") Admin站点 通过使用startproject创建的项目模版中,默认Admin被启用 1.创建管理员的用户名和密码...) class HeroAdmin(admin.ModelAdmin): 通过重写admin.ModelAdmin的属性规定显示效果,属性主要分为列表页、增加修改页两部分 列表页选项 “操作选项”的位置...True actions_on_bottom = True list_display 出现列表中显示的字段 列表类型 在列表中,可以是字段名称,也可以是方法名称,但是方法名称默认不能排序 在方法中可以使用...search_fields = ['hname'] 增加与修改页选项 fields:显示字段的顺序,如果使用元组表示显示到一行上 class HeroAdmin(admin.ModelAdmin):

    47930

    Django教程(二)- Django视图与网址进阶1. HTML表单2.CSRF3.代码操作

    用户需要从若干给定的选择中选取一个或若干选项。...在返回的 HTTP 响应的 cookie 里,django 会为你添加一个 csrftoken 字段,其值为一个自动生成的 token 在所有的 POST 表单时,必须包含一个 csrfmiddlewaretoken...字段 (只需要在模板里加一个 tag, django 就会自动帮你生成,见下面) 在处理 POST 请求之前,django 会验证这个请求的 cookie 里的 csrftoken 字段的值和提交的表单里的...要启用 django.middleware.csrf.CsrfViewMiddleware 这个中间件 再次,在所有的 POST 表单元素时,需要加上一个 {% csrf_token %} tag 在渲染模块时...创建urls.py 在项目的urls.py中,导入django.conf.urls.include模块,并且添加到urlpatterns列表 ?

    4.3K40
    领券