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

在Django Admin中通过关系键(1to1)进行搜索

在Django Admin中,通过关系键(1to1)进行搜索是指在管理后台中使用关系键(OneToOneField)来进行搜索操作。关系键是一种在两个模型之间建立一对一关系的字段类型。

在Django Admin中,可以通过在模型的Admin类中定义search_fields属性来实现通过关系键进行搜索。search_fields属性接受一个包含字段名的列表,Django会在这些字段上进行搜索操作。

例如,假设有两个模型User和Profile,它们之间通过关系键(OneToOneField)建立了一对一关系。我们想要在Django Admin中通过Profile模型的某个字段进行搜索,可以按照以下步骤操作:

  1. 在Profile模型中定义一个字段,例如name:
代码语言:txt
复制
class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
  1. 在Profile模型的Admin类中定义search_fields属性,将name字段添加到搜索字段列表中:
代码语言:txt
复制
from django.contrib import admin

@admin.register(Profile)
class ProfileAdmin(admin.ModelAdmin):
    search_fields = ['name']

现在,在Django Admin中,可以在Profile模型的管理页面上使用搜索框来搜索name字段。输入关键字后,Django会根据name字段的值进行搜索,并返回匹配的结果。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,无法给出具体的链接地址。但腾讯云提供了云服务器、云数据库、云存储等一系列云计算产品,可以根据具体需求选择适合的产品进行使用。

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

相关·内容

Django管理后台技巧分享之实例关系的搜索,autocomplete_fields字段使用

最近博客在做新功能,就是增加了两个模型,分别是专题和主题,主要就是用来对文章进行系列划分,在这个设计过程中,文章和主题会进行一个关联,当主题的数量很多的时候,文章在选择要关联的主题的时候会非常难选。...我希望在文章选择主题的时候可以输入关键字来搜过滤,这样可以减少可选项。基于这个需求,我又重新去看了一下Django关于admin的教程,终于找到了方法,现在分享一下。...= ['name', 'subject__name'] @admin.register(Article) class ArticleAdmin(admin.ModelAdmin): # 可以给外键的选择增加搜索...,前提是外键的管理模型必须设置search_fields作为搜索条件 autocomplete_fields = ['topic'] 看一下效果: 这里已经出现了搜索框,可以通过搜索条件来过滤选项...总结 本篇介绍了Django的admin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。

65620
  • Django教程第1章 | 快速入门 | 基础知识

    django特点 ORM(对象关系映射): Django 提供了一个强大的 ORM,允许开发者通过 Python 代码来定义和操作数据库模型,而无需直接使用 SQL。...模板引擎: Django 使用模板引擎来生成 HTML,这使得前端和后端的代码分离更加容易。Django 的模板语言允许开发者在模板中嵌入动态内容。...,接下来我们正式进行Django开发。...使用管理工具 启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到如下界面: 你可以通过命令 python manage.py createsuperuser...(Contact, ContactAdmin) admin.site.register([Test]) 在本实例中我们搜索了 name 为 runoob 的记录,显示结果如下: 如果本文对你有帮助,记得点赞

    30310

    Django ORM详解

    ORM:(在django中,根据代码中的类自动生成数据库的表也叫--code first) ORM:Object Relational Mapping(关系对象映射) 我们写的类表示数据库中的表 我们根据这个类创建的对象是数据库表里的一行数据...建表+配置url+views中写相应的函数 models.py(在django中仅且只能在这里写数据库的相关类) ?...,如果根据UserType这张表去查询这两张关联的表的合起来的内容就是反向查 正向查-demo1--查询所有用户为COO 的用户 在django中外键就相当于简单的使用__连表,在外键那个对象中封装了user_type...'__'       在获取值得时候通过.跨表     反向查找       Django自动生成 表名_set       其他操作和正向查找一样 二、多对对   1、自动生成关系表     间接的方式获取关系表...               /*                这里需要注意:重点:::::                这里和Django的Q可以进行耦合,在我们定义搜索的类型的时候可以直接写成我们要搜索的的

    1.8K100

    Django安装及简单使用1.5

    你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: NSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth...依次设置账号 使用管理工具 启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到如下界面: ?...登录后效果 为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。比如,我们之前在 TestModel 中已经创建了模型 Test 。...image.png 内联(Inline)显示 上面的 Contact 是 Tag 的外部键,所以有外部参考的关系。 而在默认的页面显示中,将两者分离开来,无法体现出两者的从属关系。...(Contact, ContactAdmin) admin.site.register([Test]) 在本实例中我们搜索了 name 为 runoob 的记录,显示结果如下: ?

    95570

    Django3.2边学边记—Adimn站点管理

    类可以控制不同模型在Admin界面中的展示方式,主要包括在列表页的展示方式、添加修改页的展示方式 上文中展示了TestAdmin类的一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register... = 'unknown' 以上通过指定方法属性来控制显示是新老版本通用的,在Django3.2可以通过给装饰器传参来解决:   在model.py中: 1234567891011121314151617...中: 123456789101112 from XXX import Testfrom django.contrib import admin class TestAdmin(admin.ModelAdmin...搜索框 用 search_fields,在管理启用搜索框。 ...12 class TestAdmin(admin.ModelAdmin):    search_fields = ['id','name'] 在搜索框中进行搜索时,Django 会将搜索查询拆分成多个词

    1.3K30

    django 快速入门

    我们要做的就是在模型中指定和数据库的关系。 打开hello app中的models.py文件,然后添加下面两个模型。这两个模型是宠物和主人的关系。...models.ForeignKey用来指定外键约束,还有一些其他的对应关系例如多对多、一对一等就不介绍了。...需要获取参数的时候,直接用request.POST即可,它是一个类似字典的对象,我们可以通过键来访问对应参数的值。...需要注意的是,由于前面介绍的django文件搜索机制,在静态文件夹中,我们最好在指定一级和app同名的文件夹用来区分不同app间的静态文件。...项目公用静态文件 有些静态文件可能是多个app公用的,这时候需要进行一点额外设置。首先在和app同级的目录创建static文件夹并将静态文件放入。然后在配置文件中添加额外的搜索路径配置。

    1.9K60

    【Django】当大型项目采用Django框架对于QueryDict以及模板的表单在Admin 管理工具的使用

    QueryDict 在HttpRequest对象中,GET和POST属性是django.http的实例。QueryDict类。 QueryDict是一个用户定义的类,类似于字典。...在HelloWorld目录中创建一个search2.py文件,并使用search_post函数处理post请求: from django.http import HttpResponse from django.shortcuts...当客户发送请求时,可以将数据附加到请求中。通过解析请求,服务器可以从客户端获取数据,并根据URL提供特定服务。...(Contact, ContactAdmin) admin.site.register([Test, Tag]) 上面的联系人是标记的外部键,因此它具有外部引用关系。...: 通过错误消息Py文件的文件路径,在…site packages django-2.0-py3.6.eggDjango-db-backends-mysql的路径中找到基,注释掉两行代码(代码位于文件的开头

    1.7K20

    Django之ORM数据库

    每个模型相当于单个数据库表(多对多关系例外,会多生成一张关系表),每个属性也是这个表中的字段。...一对一:实质就是在主外键(author_id就是foreign key)的关系基础上,给外键加了一个UNIQUE=True的属性;              一对多:就是主外键关系;(foreign key...(如何处理外键关系的字段如一对多的publisher和多对多的authors) #一对多(ForeignKey): #方式一: 由于绑定一对多的字段,比如publish,存到数据库中的字段名叫...聚合查询和分组查询 aggregate(*args,**kwargs):    通过对QuerySet进行计算,返回一个聚合值的字典。...的配置 admin是django强大功能之一,它能共从数据库中读取数据,呈现在页面中,进行管理。

    2.6K10

    Django之路由层

    作者 一对一 在Django中创建表与表的外间关系具体程序如下: class Book(models.Model): title = models.CharField(max_length=...,建议建在查询频率高的一方 一对多外键字段创建的时候同步到数据中表字段会自动加_id后缀,如果我们手动加了_id orm也会在给我们加一次,所以我们这里不要加_id 多对多关系,django orm会自动帮我们创建书籍和作者的第三张关系表...urls 2.进行如下配置 urlpatterns = [ url(r'^admin/', admin.site.urls), # url第一个参数是一个正则表达式 # 路由分发...3.9Django1.x和2.x的版本的路由层区别 1.Django2.x中默认的url通过path接收,path的第一个输入值不是正则表达式,里面写的是什么就按什么匹配。...urlpatterns = [ path('admin/', admin.site.urls), ] 2.Django2.x中的re_path对应的是Django1.x中的url功能相同。

    1.4K21

    Django 3.1 官网学习路线

    字段还可以有各种可选参数;在本例中,我们将投票的默认值设置为 0。 最后,请注意使用外键定义了关系。这告诉 Django 每个选择都与一个问题相关。...按照惯例,Django 会将"_id"附加到外键字段名。(是的,你也可以重写这个。) 外键关系是通过外键约束来显式的。...投票行动-处理对特定问题中的特定选择进行投票。 在 Django 中,Web 页面和其他内容是通过视图传递的。每个视图都由一个 Python 函数(或方法,对于基于类的视图)表示。...可以通过在注册对象时告诉 Django 所需的选项来实现。 通过重新排列编辑表单中的字段来了解其工作原理。...“添加选择”表单如下所示: 在该表单中,“Question”字段是一个选择框,包含数据库中的每个问题。Django 知道一个外键应该在管理中表示为一个框。在我们的例子中,目前只存在一个问题。

    8.2K10

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

    在实际的项目中,数据模型通常通过数据库实现持久化操作,而关系型数据库在过去和当下都是持久化的首选方案,下面我们以MySQL为例来说明如何使用关系型数据库来实现持久化操作。...OK 执行完数据模型迁移操作之后,可以在通过图形化的MySQL客户端工具查看到E-R图(实体关系图)。 利用Django后台管理模型 Django框架有自带的后台管理系统来实现对模型的管理。...至此我们还没有看到之前创建的模型类,需要在应用的admin.py文件中模型进行注册。 注册模型类。...我们可以通过manage.py开启Shell交互式环境,然后使用Django内置的ORM框架对模型进行CRUD操作。..., , ]> 说明1:由于员工与部门之间存在多对一外键关联,所以也能通过部门反向查询该部门的员工(从一对多关系中“一”

    2.3K30

    django后台管理-admin

    0922自我总结 django后台管理-admin 一.模型注册 admin.py 注册方式一: #在对于注册的app中的admin文件中导入模型然后注册模型 admin.site.register(导入的模型类...可以在settings.py中设置: LANGUAGE_CODE = 'zh-CN' TIME_ZONE = 'Asia/Shanghai' 1.8版本之后的language code设置不同: LANGUAGE_CODE...#listdisplay设置要显示在列表中的字段(id字段是Django模型的默认主键) list_display = ('id', 'caption', 'author', 'publish_time...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是外键需要遵循这样的语法:本表字段__外键表要显示的字段。...如:“user__user_name” 3、颜色显示 from django.db import models from django.contrib import admin from django.utils.html

    88810

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

    这不仅在数据库模式中使用,而且在验证中使用。 Field还可以有各种可选参数;在上例中,我们将votes的默认值设置为0。 最后,使用ForeignKey定义关系。...(你也可以重写这个行为); 按照惯例,Django会在外键的字段名后面添加 "_id"。(你依然可以重写这个行为); 外键关系由FOREIGN KEY约束显式声明。...我们将在本教程的后续章节对迁移进行深入地讲解,但是现在,请记住实现模型变更的三个步骤: 修改你的模型(在models.py文件中); 运行python manage.py makemigrations...您必须从manage.py所在的同一目录运行python,或确保该目录在Python搜索路径中,这个import mysite才会成功。...: The sky>, ]> >>> q.choice_set.count() 3 # API会自动进行连表操作,通过双下划线分割关系对象。

    2.3K60

    Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传的时候,文件数据被保存在request.FILES FILES中的每个键为中的name 注意:FILES只有在请求的方法为...站点 通过使用startproject创建的项目模版中,默认Admin被启用 1.创建管理员的用户名和密码 python manage.py createsuperuser 然后按提示填写用户名、邮箱、...密码 2.在应用内admin.py文件完成注册,就可以在后台管理中维护模型的数据 from django.contrib import admin from models import * admin.site.register...(HeroInfo) 查找admin文件:在INSTALLED_APPS项中加入django.contrib.admin,Django就会自动搜索每个应用的admin模块并将其导入 ModelAdmin...list_per_page = 10 search_fields 搜索框 列表类型,表示在这些字段上进行搜索 只能接收字段 class HeroAdmin(admin.ModelAdmin):

    47930

    Django中ORM操作

    ,此类字段只是在Django自带的admin中生效) name=models.CharField(max_length=32) EmailField(CharField): IPAddressField...正向查找:ForeignKey在 UserInfo表中,如果从UserInfo表开始向其他的表进行查询,这个就是正向操作,反之如果从UserType表去查询其他的表这个就是反向操作。...通过对象的形式反向跨表:小写表名_set().all() 1对多 如果A表的1条记录对应B表中N条记录成立,两表之间就是1对多关系;在1对多关系中 A表就是主表,B表为子表,ForeignKey...字段就建在子表; 如果B表的1条记录也对应A表中N条记录,两表之间就是双向1对多关系,也称为多对多关系; 在orm中设置如果 A表设置了外键字段user=models.ForeignKey('UserType...数据查找思路 找到该对象 通过该对象 反向操作 找到第三张关系表 通过第三张关系表 正向操作 找到 和该对象有关系对象 总结(只要对象1和对象2 中间有关系表建立了关系; 对象1反向操作

    4.8K10

    37.Django1.11.6文档

    它会生成一个复杂的查询并引起性能的损耗,但是在以后使用外键关系时将不需要数据库查询。...在使用多个数据库后端进行测试时,跳过某些模型也很有用。 避免与ORM无关的模型之间的关系。...在定义到用户模型的外键或多对多关系时,应使用AUTH_USER_MODEL设置指定自定义模型。 ...'] 例如,如果您有一个作者的博客条目,以下定义将允许通过作者的电子邮件地址搜索博客条目 search_fields = ['user__email'] 如果有人在Admin 搜索框中进行搜索,Django...例如,您可能希望通过整数字段搜索,或使用外部工具(如Solr或Haystack)。您必须确定通过搜索方法实现的查询集更改是否可能在结果中引入重复项,并在返回值的第二个元素中返回True。

    24.4K80

    Django框架学习(四)

    order_by 1.7关联查询 1、查询和指定对象关联的数据(重点掌握) 由一查多:一对象.多类名小写__set.all() 由多查一:多对象.外键属性 2、通过模型类进行关联查询 查图书:一类.objects.get...两大特性: 1、惰性查询:只有在使用查询集中的数据时才会进行数据库真正查询操作 2、查询结果的缓存:如果使用同一个查询集时,只有在第一次使用查询集时会进行数据库的查询操作,然后Django框架就会把查询的结果存起来...中定义模型admin的管理类,继承于admin.ModelAdmin 2)admin.site.register(模型类,admin管理类) 3)在Admin管理类中通过对应的类属性控制admin界面内容...3.2图片上传 Django自带文件存储系统,可以直接通过admin站点进行图片的上传,默认上传的文件保存在服务器本地。...使用: 1、在配置文件中设置配置项MEDIA_ROOT=‘上传文件的保存目录’ 2、定义模型类时,图片字段的类型使用’imageField’ 3、迁移生成表,并在admin.py注册模型类,直接登录admin

    1.5K41

    Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响

    作为铁杆Django用户,发现昨天Django进行了更新,且修复了一个SQL注入漏洞。在我印象里这应该是Django第一个SQL注入漏洞,且的确是可能在业务里出现的漏洞,于是进行了分析。...正常情况下,transform一般用来在通过外键连接两个表,比如.filter(author__username='phith0n')可以表示在author外键连接的用户表中,找到username字段;...那么,在JSONField中,lookup实际上是没有变的,但是transform从“在外键表中查找”,变成了“在JSON对象中查找”,所以自然需要重写get_transform函数。...原因是,Django-Admin中就支持用户控制queryset的查询键名,我在2017年在微博中说到过这一点,不过当时没有测过JSONField,sad。 ?...总的来说,如果你的应用使用了JSONField,且用户可以进入应用的Django-Admin后台,就可以进行SQL注入。

    2.1K32
    领券