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

如何在django管理面板中从一个模型到另一个模型的下拉列表中预先填充charfield值

在Django管理面板中,如果想要在一个模型的下拉列表中预先填充另一个模型的CharField值,可以通过以下步骤实现:

  1. 首先,在Django的模型定义中,确保两个模型之间存在关联关系。可以使用ForeignKey或OneToOneField来建立关联。
  2. 在目标模型(下拉列表所在的模型)的admin.py文件中,创建一个自定义的ModelAdmin类。
  3. 在自定义的ModelAdmin类中,重写get_form方法。该方法用于返回一个表单类,可以在表单中预先填充CharField的值。
  4. 在get_form方法中,通过super()方法获取默认的表单类,并将其保存在一个变量中。
  5. 在变量中找到CharField字段,并使用initial属性设置其初始值。initial属性接受一个字典,其中键是字段名称,值是要填充的值。
  6. 最后,返回修改后的表单类。

以下是一个示例代码:

代码语言:txt
复制
from django.contrib import admin
from .models import Model1, Model2

class Model2Admin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        form = super().get_form(request, obj, **kwargs)
        if obj:
            # 获取Model1的CharField值
            char_value = obj.model1.charfield
            # 设置Model2的CharField初始值
            form.base_fields['charfield'].initial = char_value
        return form

admin.site.register(Model2, Model2Admin)

在上述示例中,我们创建了一个自定义的ModelAdmin类Model2Admin,并重写了get_form方法。在该方法中,我们通过obj参数获取了当前Model2对象的关联Model1对象,并从Model1对象中获取CharField的值。然后,我们使用initial属性将该值设置为Model2表单中CharField的初始值。

请注意,上述示例中的Model1和Model2分别代表两个相关的模型,你需要根据实际情况进行替换。

这样,当在Django管理面板中创建或编辑Model2对象时,CharField字段的下拉列表将会预先填充Model1对象的CharField值。

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

相关·内容

35.Django2.0文档

一般来说,基础模板 {% block %} 标签越多越好。 记住,子模板不必定义父模板中所有的代码块,因 此你可以用合理缺省对一些代码块进行填充,然后只对子模板所需代码块进行(重)定义。...该层处理与表现相关决定: 如何在页面或其他类型文档中进行显示。   V:代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板相关逻辑。 你可以把它看作模型与模板之间桥梁。  ...其它django.contrib应用程序,django.contrib.redirects,其它从网上下在第三方Django应用程序一样,都会自行添加到管理工具。  ...这些代码告诉Django,作者邮箱地址允许输入一  4.自定义字段标签      在编辑页面,每个字段标签都是从模块字段名称生成。...例如,我们book数据库膨胀拥有数千条publishers记录,以致于book添加页面装载时间较久,因为它必须把每一publisher都装载并显示在`` 下拉框``

11.3K100

Django | 开发】面试招聘信息网站(快速搭建核心需求)

setting简单配置等)✨ 文章目录 一、创建职位管理后台 1.1 定义用户模型 1.2 在admin优化管理 1.3 效果 二、匿名用户可查看职位列表和职位详情 三、产品背景迭代思维 3.1...6.2 将类别一样信息放在同一行 一、创建职位管理后台 1.1 定义用户模型 创建recruitment(招聘) 项目和 jobs应用 我们在对项目开发时,需要提前设计好整个数据表字段(不能想到什么再加...,后面修改和数据迁移操作会麻烦多) 在 jobs.models.py应用创建如下模型: from datetime import datetime from django.contrib.auth.models...(在admin完成实现 创建interview应用,在model.py创建模型 这里为了快速搭建核心需求,忽略了一问题,由于一面面试官二面面试官和HR信息都直接放在了一表里,所以这里一面二面...hr面试官foreignkey键对于得是用户,而用户处理面试官们还包括了普通用户,所以会出现在下拉选项出现可以选择应聘者得选项bug,这个读者们可以加多一额外应聘者信息模型,外键对应面试官 from

76220

django处理select下拉表单实例(从model前端postform)

现在假如要写一按照”标题”,’内容’,’作者’等等进行针对性选择,这时需要涉及使用select下拉表单来进行选择.django是可以比较简单解决这个问题....'), #前面是展示在前端界面的内容,后面的'first'是真正存在数据库 ('内容', 'second'), ('作者', 'third'), ) select_value...= models.CharField(max_length=10, choices=SELVALUE) 接下来我们写forms: from django import forms class SelectTestForm...request.POST) if select_form.is_valid(): get_value = request.POST.get('sel_value', "") #这里可以取到下拉表单...处理select下拉表单实例(从model前端postform)就是小编分享给大家全部内容了,希望能给大家一参考。

2K20

​第 07 篇:创作后台开启,请开始你表演!

创建 admin 后台管理员账户 要想进入django admin 后台,首先需要创建一超级管理员账户。...在支持 Markdown 语法部分中将介绍如何在文章插入图片方法。...文章创建时间和修改时间应该根据当前时间自动生成,而现在是由人工填写,还有就是文章作者应该自动填充为后台管理员用户,那么这些自动填充数据字段就不需要在新增文章表单中出现了。...接下来是填充创建时间,修改时间和文章作者。之前提到,文章作者应该自动设定为登录后台发布此文章管理员用户。...所以这里问题关键是每次保存模型时,都应该修改 modified_time 。每一 Model 都有一 save 方法,这个方法包含了将 model 数据保存到数据库逻辑。

1.1K20

django 1.8 官方文档翻译: 2-5-1 管理器 (初稿)

django应用每个模型至少拥有一 管理器。 管理器类工作方式在 执行查询文档阐述,而这篇文档涉及了自定义管理器行为模型选项。...在模型定义一为models.Manager()属性,来重命名管理器。...例如,下面这个自定义 管理器提供了一 with_counts() 方法,它返回所有 OpinionPoll 对象列表,而且列表每个对象都多了一名为 num_responses属性,这个属性保存一聚合查询...如果你想从一非抽象基类重用管理器,只能在子类重定义管理器。 这是因为这种管理器与定义它模型 绑定得非常紧密,所以继承它们经常会导致异常结果(特别是默认管理器运行时候)。...解决办法就是在另一个基类添加新管理器,然后继承时将其放在默认管理器所在基类 之后。

95520

Django 教程 --- Django 模型

SQL(结构化查询语言)很复杂,涉及许多不同查询,用于创建,删除,更新或与数据库有关任何其他内容。Django模型简化了任务并将表组织模型。通常,每个模型都映射到单个数据库表。...本文围绕如何使用Django模型方便地将数据存储在数据库展开。此外,我们可以使用Django管理面板来创建,更新,删除或检索模型字段以及各种类似的操作。...使用Django模型 要使用Django模型,需要在其中运行一项目和一应用程序。启动应用程序后,可以在app / models.py创建模型。...从models.py导入相应模型并将其注册管理界面。...基本模型数据类型和字段列表 模型最重要部分和模型唯一需要部分是它定义数据库字段列表。字段由类属性指定。这是Django中使用所有Field类型列表

2.1K10

37.Django1.11.6文档

例如,下面的模型有两Manager,一返回所有的对象,另一个则只返回作者是Roald Dahl 对象: # 首先,定义管理子类。...在模型实例不包含数据情况下,在模板对它做处理很少有什么用处。 但是渲染一填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般从数据库获取它。...当我们实例化表单时,我们可以选择让它为空还是预先填充它,例如使用: 来自一保存后模型实例数据(例如用于编辑管理表单) 我们从其它地方获得数据 从前面一HTML 表单提交过来数据 获取HTML...每个模型字段有一对应默认表单字段。 比如,模型CharField 表现成表单CharField。 ...ModelAdmin.ordering 设置ordering以指定如何在Django管理视图中对对象列表进行排序。 这应该是与模型ordering参数格式相同列表或元组。

24.3K80

何在Django中使用聚合实现示例

在本文中,我想向您介绍如何在Django中使用聚合,聚合含义是“内容相关项集合,以便它们可以显示或链接到”。...在Django,我们使用情况例如: 用于在Django模型数据库表查找列“最大”,“最小”。 用于基于列在数据库表查找记录“计数”。 用于查找一组相似对象“平均值”。...还用于查找列总和。 在大多数情况下,我们对数据类型为“整数”,“浮点数”,“日期”,“日期时间”等列使用聚合。 本质上,聚合不过是对一组行执行操作一种方式。...在数据库,它们由运算符表示为sum,avg等。执行这些操作Django在查询集中添加了两新方法。 这两种方法是聚合和注释。...admin.site.register(Book) admin.site.register(Author) admin.site.register(Publisher) 之后,您需要打开管理面板并将一些项目添加到数据库

1.7K31

django 1.8 官方文档翻译: 3-4-2 内建显示视图

此外,有问题模型可以作为一额外参数传递URLconfDjango通过通用视图来完成下面一些功能: 为单一对象展示列表和一详细页面。...如果我们创建一应用来管理会议,那么 一 TalkListView (讨论列表视图)和一 RegisteredUserListView ( 注册用户列表视图)就是列表视图例子。...当你处理 一object或者queryset时,Django能够使用你定义对象显示用自述名(verbose name,或者复数自述名,对于对象列表)来填充上下文(context)。...DetailView通用视图提供了一publisher对象给context,但是我们如何在模板添加附加信息呢?...详见基于类视图参考。 动态过滤 另一个普遍需求是在给定列表页面根据URL关键字来过滤对象。

1.4K40

django 1.8 官方文档翻译: 1-1-1 Django初探

设计你模型(model) 尽管你在 Django 可以不使用数据库,但是它提供了一完善可以用 Python 代码描述你数据库结构对象关联映射(ORM)。...正则表达式通过圆括号来“捕获” URLs 。当一用户请求一页面时, Django 将按照顺序去匹配每一模式,并停在第一匹配请求 URL 上。...编写你视图(views) 每个视图只负责两件事一件:返回一包含请求页面内容 HttpResponse 对象; 或抛出一异常 Http404 。至于其他就靠你了。...在你 Django设置,你可以指定一查找模板目录列表。如果一模板没有在这个 列表,那么它会去查找第二,然后以此类推。 假设找到了模板 news/year_archive.html 。...(含网站 logo ),并留下了“洞”让子模板来填充

75020

Django项目知识点(三)

本文一篇完全介绍django最重要model 6.django model 模型是数据唯一而且准确信息来源。它包含正在储存数据重要字段和行为。一般来说,每一模型都映射一数据库表。...这个选项是指定,模型复数形式是什么,比如verbose_name_plural = "学校"如果不指定Django会自动在模型名称后加一’s’ 字段类型 models.CharField 字符串类型...注意:Django在一模型只允许有一自增字段,并且该字段必须为主键!...一对多:当一张表创建一行数据时,有一单选下拉框(可以被重复选择) 一学院信息表有多个学生信息表 再比如文章和作者之间关系。一文章只能由一作者编写,但是一作者可以写多篇文章。...一对一:在某表创建一行数据时,有一单选下拉框(下拉内容被用过一次就消失了) 一学生信息表就只用一对应详细信息表 再比如一用户表和一用户信息表。

1.8K30

何在 Django 创建抽象模型类?

我们将学习如何在 Django 创建抽象模型类。 Django 抽象模型类是一模型,它用作其他模型继承模板,而不是一旨在创建或保存到数据库模型。...在应用程序,可以使用抽象模型定义多个模型共享相似字段和行为。使用 Django,您可以定义一派生自 Django.db.models 模型类,以建立一抽象模型类。...创建抽象模型步骤 步骤 1 - 设置一继承自 django.db.models 新类。抽象模型类使用模型。此类可以具有您喜欢任何名称,但最好使用准确描述它在应用程序功能名称。...例 1 在这个例子,我们将在 Django 创建一抽象模型类,并使用它来更好地理解它。...默认情况下,如果未提及任何内容,则将使用当前时间填充这些字段。我们创建了另一个名为“ArticleModel”模型,该模型在参数获取抽象模型并使用这些字段。它包含两个字段,“名称”和“作者”。

17530

Django】在大型项目中django性能模型字段primary_key

默认表单部分将是包含这些选项选择框,而不是标准文本字段。 每个元组第一元素是要在模型上设置实际,第二元素是人类可读名称。...还可以将可用选项收集可用于组织目的命名组: from django.db import models class Student(models.Model): FRESHMAN = '...第二元素是二进制元组迭代。每个二进制元组包含一和一可读选项名称。分组选项可以与单个列表未分组选项组合(例如本例“未知”选项)。...,Django将添加一方法来检索字段当前可读名称。...接受与DateField相同自动填充选项。 此字段默认表单部分是TimeInput。一些JavaScript快捷方式已添加到管理

2K20

三、模型(一)

要完成该项工作,第一步是在 Django 项目中 激活这些模型。 将上面的模型所在app添加到配置文件已安装应用列表即可完成此步骤。...最后, __unicode__() 也是一很好例子来演示我们怎么添加 行为 模型里。 Django模型不只是为对象定义了数据库表结构,还定义了对象行为。 ...没什么好奇怪: 你想要查找数据, 你就用模型来获得数据。 然后,是objects属性。 它被称为管理器,了解管理管理着所有针对数据包含、还有最重要数据查询表格级操作。...所有的模型都自动拥有一 objects 管理器;你可以在想要查找数据时使用它。 最后,还有 all() 方法。这个方法返回返回数据库中所有的记录。...在上面的例子,这个是2。 删除对象 删除数据时要谨慎! 为了预防误删除掉某一表内所有数据,Django要求在删除表内所有数据时显示使用all()。

4.5K90

关于“Python”核心知识点整理大全59

最简单办法是,将既有主题都 关联同一用户,超级用户。为此,我们需要知道该用户ID。 下面来查看已创建所有用户ID。...输出列出了三用户:ll_admin、eric和willie。 在3处,我们遍历用户列表,并打印每位用户用户名和ID。...在2处输出Django指出我们试图给既有 模型Topic添加一必不可少(不可为空)字段,而该字段没有默认。...在3处,Django给我 们提供了两种选择:要么现在提供默认,要么退出并在models.py添加默认。在4处,我们 选择了第一选项,因此Django让我们输入默认(见5)。...为将所有既有主题都关联管理用户ll_admin,我输入了用户ID1(见6)。并非必须使用 超级用户,而可使用已创建任何用户ID。

11510

django 1.8 官方文档翻译: 5-1-1 使用表单

另一个方面,GET 适合网页搜索这样表单,因为这种表示一GET 请求URL 可以很容易地作为书签、分享和重新提交。 Django 在表单角色 处理表单是一件很复杂事情。...(ModelForm通过一Form 映射模型字段HTML 表单元素;Django Admin 站点就是基于这个)。...在模型实例不包含数据情况下,在模板对它做处理很少有什么用处。但是渲染一填充表单却非常有意义 —— 我们希望用户去填充它。 所以当我们在视图中处理模型实例时,我们一般从数据库获取它。...当我们实例化表单时,我们可以选择让它为空还是预先填充它,例如使用: 来自一保存后模型实例数据(例如用于编辑管理表单) 我们从其它地方获得数据 从前面一HTML 表单提交过来数据 最后一种情况最令人关注...共用到三种字段类型:CharField、EmailField 和 BooleanField;完整字段类型列表可以在表单字段中找到。

4.2K20

Django 3.1 官网学习路线

每个模型都有许多类变量,每个类变量表示模型数据库字段 每个字段都由 Field 类实例表示-例如,CharField 用于字符字段,DateTimeField 用于日期时间。...迁移是 Django 将更改存储模型(以及您数据库模式)方式——它们是磁盘上文件。...不同模型字段类型(DateTimeField、CharField)对应于适当 HTML 输入小部件。每种类型字段都知道如何在 Django 管理显示自己。...页面的底部提供了几个选项: 保存-保存更改并返回此类型对象更改列表页。 保存并继续编辑——保存更改并重新加载此对象管理页面。 保存并添加另一个——保存更改并为这种类型对象加载一空白表单。...上下文是模板变量名 Python 对象映射字典。 通过将浏览器指向" /polls/ "来加载页面,您应该会看到一项目符号列表,其中包含教程第二部分" What 's up "问题。

8.1K10

从0开始做系统

前面已经写了如何做接口,那是方便调用。现在写个如何做后台系统,是方便操作Django自带后台管理Django明显特色之一,可以让我们快速便捷管理数据。...后台管理可以在各个appadmin.py文件中进行控制。 假如有小白,想做个后台系统,如何做,他可以直接用Djangoadmin来弄。...:要保存最大为 999 (小数点后保存2位),你要这样定义字段:FloatField(…,max_digits=5, decimal_places=2),要保存最大一百万(小数点后保存10位)的话...简单配置一下admin, 在app下面的admin里面, 先定义一类,然后注册admin里面。...list_filter = ["publish","authors"] ModelAdmin中提供了大量可定制功能, list_display,列表时,定制显示列。

1.4K30

Django 学习笔记之模型(上)

顺便补充下本文用一些工具版本:Python 版本是 3.6,Mysql 版本是 5.5 1 模型是什么 在 Web 应用,数据一般存储数据库Django 模型层是跟数据库打交道层次。...模型可能会有多个模型,每个模型(每个 app models.py 每个类都是一模型)都对应着数据库唯一一张表。...Django 目前支持以下这 MySQL、PostgreSQL、Oracle 等数据库,它们数据库引擎设置如下: 其中设置字段是填充 ENGINE 。...2)IntegerField:一整数。在 Django 所有支持数据库,-2147483648 2147483647 范围才是合法。...4)unique:如果该设置为 True, 这个数据字段在整张表必须是唯一。 5)default:设置该字段默认。 6)由二项元组构成可迭代对象(列表或元组),用来给字段提供选择项。

1.8K30
领券