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

在Django Admin中,有没有办法在没有自定义超文本标记语言的情况下,添加一个自定义的autocomplete_field,在保存时为模型字段提供一个查询集?

在Django Admin中,可以通过使用autocomplete_fields选项来添加自定义的自动完成字段,而无需自定义超文本标记语言。这个选项允许我们为模型字段提供一个查询集,以便在保存时进行自动完成。

autocomplete_fields选项可以在Admin类中使用,用于指定一个或多个字段,这些字段应该具有自动完成功能。当我们在Admin中编辑模型对象时,这些字段将显示为自动完成输入框,允许我们通过输入关键字来选择相关的对象。

以下是使用autocomplete_fields选项的示例:

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

class MyModelAdmin(admin.ModelAdmin):
    autocomplete_fields = ['related_field']

admin.site.register(MyModel, MyModelAdmin)

在上面的示例中,我们将autocomplete_fields选项设置为['related_field'],其中related_field是模型MyModel中的一个外键字段。这将在Django Admin中为related_field字段添加自动完成功能。

对于查询集,我们可以使用queryset属性来提供一个自定义的查询集。例如,如果我们想为related_field字段提供一个特定的查询集,可以按如下方式进行设置:

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

class MyModelAdmin(admin.ModelAdmin):
    autocomplete_fields = ['related_field']
    
    def get_search_results(self, request, queryset, search_term):
        queryset, use_distinct = super().get_search_results(request, queryset, search_term)
        queryset = queryset.filter(related_field__icontains=search_term)
        return queryset, use_distinct

admin.site.register(MyModel, MyModelAdmin)

在上面的示例中,我们重写了get_search_results方法,并在查询集中添加了一个额外的过滤器,以便在搜索时也考虑related_field字段。

这样,我们就可以在Django Admin中添加自定义的自动完成字段,并为模型字段提供一个查询集,以实现自动完成的功能。

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

37.Django1.11.6文档

当你最初获取数据不知道是否需要这些特定字段情况下,如果你正在使用查询结果,你可以告诉Django不要从数据库检索它们。...Form 实例数据没有办法修改。 Form实例一旦创建,你应该将它数据视为不可变,无论它有没有数据。 (2)使用表单验证数据 让我们试下非法数据。...(它负责比较密码哈希)。 set_unusable_password() 标记用户没有设置密码。 它与密码字符串不一样。 ...如果模型相应字段有选择,则提供给表单选项必须是这些选择有效子集,否则,保存模型本身之前验证模型本身,表单提交将失败并显示ValidationError 。...向admin 添加自定义验证 管理员添加数据自定义验证是很容易

24.2K80

35.Django2.0文档

forloop.last 是一个布尔值;最后一次执行循环被置True。...2.注释 就像HTML或者Python,Django模板语言同样提供代码注释。...我们可以对任意字段进行排序,如果需要以多个字段标准进行排序(第二个字段会在第一个字段值相同情况下被使用到),使用多个参数就可以了,如下: ?...规则很简单: 用空格替换下划线;首字母大写 然而,字段名称并不总是贴切。有些情况下,你可能想自定义一个标签。 你只需模块中指定verbose_name。  ...解释一下代码: 我们新建了一个类AuthorAdmin,它是从django.contrib.admin.ModelAdmin派生出来子类,保存一个自定义配置,以供管理工具使用。

11.3K100

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

哲理 员工或客户生成添加、修改和删除内容管理性网站是个单调乏味工作。 出于这个原因,Django 根据模型完全自动化创建管理界面。...这些都是 Django 默认情况下自带核心功能。 使 poll 应用数据管理网站可编辑 但是 poll 应用在哪? 它可是没有管理网站首页上显示啊。...通过 admin.site.register(Poll) 注册了 Poll 模型Django 就能构造一个默认 表单。通常情况下,你将要自定义管理表单外观和功能。...默认情况下提供 3 个 choices 字段空间。...当 Django 呈现 admin/base_site.html ,根据模板语言生成最终 HTML 页面。

2.5K40

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

2.3 字段字段管理 字段管理:可以Admin类中使用fields或fieldsets属性来控制编辑页面字段显示。...用户模型Django提供一个默认用户模型,包含用户名、密码和电子邮件等字段。 3.2 用户、组和权限管理 用户管理:Django Admin,可以创建、编辑和删除用户。...自定义字段:可以自定义用户模型添加额外字段,如手机号码、地址等。 自定义认证后端:可以编写自定义认证后端来处理特定认证逻辑。...Admin actions: 添加批量发布和批量删除等Admin actions,可以admin.py文件相应模型添加自定义Admin actions。...Admin actions: 添加批量禁用和批量启用用户、批量删除社区和帖子等Admin actions,可以admin.py文件相应模型添加自定义Admin actions。

7010

Django学习笔记 1.7 自定义 admin 站点

1 自定义后台表单 polls/admin.py 通过 admin.site.register(Question) 注册 Question 模型Django 能够构建一个默认表单用于展示。...通常来说,你期望能自定义表单外观和工作方式。你可以注册模型将这些设置告诉 Django。...默认提供 3 个足够选项字段。” 3 自定义后台更改列表 3.1 显示列表 默认情况下Django 显示每个对象 str() 返回值。但有时如果我们能够显示单个字段,它会更有帮助。...为此,使用 list_display 后台选项,它是一个包含要显示字段元组,更改列表页以列形式展示这个对象: class QuestionAdmin(admin.ModelAdmin):...你可以使用任意多字段——由于后台使用 LIKE 来查询数据,将待搜索字段数限制为一个不会出问题大小,会便于数据库进行查询操作。 END ----

98120

Django框架学习(四)

两大特性: 1、惰性查询:只有使用查询集中数据才会进行数据库真正查询操作 2、查询结果缓存:如果使用同一个查询,只有第一次使用查询时会进行数据库查询操作,然后Django框架就会把查询结果存起来...3.admin站点 Django框架提供一个admin站点,可以让用户来管理网站数据表内容。...3.1使用 1.语言和时区本地化 2.创建管理员用户 python manage.py createsuperuser 3.admin.py中注册模型类 4.自定义admin站点管理页面 1)admin.py...定义模型admin管理类,继承于admin.ModelAdmin 2)admin.site.register(模型类,admin管理类) 3)Admin管理类通过对应类属性控制admin界面内容...使用: 1、配置文件设置配置项MEDIA_ROOT=‘上传文件保存目录’ 2、定义模型,图片字段类型使用’imageField’ 3、迁移生成表,并在admin.py注册模型类,直接登录admin

1.5K41

DjangoORM介绍和字段及其参数

模型每个属性都代表一个数据库字段。 综上所述,Django提供一个自动生成数据库访问API,详询官方文档链接。 ?...id字段是自动添加,如果你想要指定自定义主键,只需在其中一个字段中指定 primary_key=True 即可。...(反向查询,我们会这么写: models.Classes.objects.first().student_set.all() 当我们ForeignKey字段添加了参数 related_name ...是否添加 class Meta 到你 model 完全是可选. app_label app_label这个选项只一种情况下使用,就是你模型类不在默认应用程序包下models.py文件,这时候你需要指定你这个模型类是那个应用程序...ordering 这个字段是告诉Django模型对象返回记录结果是按照哪个字段排序

2.8K80

Django教程 —— 站点后台管理

那么问题来了,老板说我们需要在建立一个新网站,是不是还要设计一个页面来实现对新网站数据库增删改查操作,但是这样页面具有一个很大重复性,那有没有一种方法能够让我们很快生成管理数据库表页面呢?...3、注册模型类 登录后台管理后,默认没有我们创建应用定义模型类,需要在自己应用 admin.py 文件中注册,才可以在后台管理中看到,并进行增删改查操作。...增加/修改 目前暂时没有图书信息,列表页中点击"增加"可以进入增加页,Django 会根据模型不同,生成不同表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。...自定义后台管理界面 列表页只显示出了 BookInfo object ,对象其它属性并没有列出来,查看非常不方便。 Django提供自定义管理页面的功能。 比如列表页要显示哪些值。...但发现没有左边还是英文。 我们只要在模型添加一个 Meta 类设置相应属性即可。

2K10

Django 1.10文文档-第一个应用Part7-自定义管理站点

你可以注册通过配置来实现。 现在先来试试重新排序表单上字段。...在这个表单,Question字段一个select选择框,包含了当前数据库中所有的Question实例。Djangoadmin站点中,自动地将所有的外键关系展示一个select框。...点击它,会弹出一个新增Question表单,类似Question自己添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice关联外键对象。...你search_fields中使用任意数量字段,但由于它在后台使用LIKE进行查询,尽量不要添加太多字段,不然会降低数据库查询能力。 修改列表自带分页功能,默认每页展示100条数据。...自定义管理站点首页 类似的情况下,您可能想要定制Django管理首页页面。默认情况下,管理站点首页显示所有INSTALLED_APPS内并在admin应用中注册过app,以字母顺序进行排序。

3.6K60

Django教程 —— 站点后台管理

那么问题来了,老板说我们需要在建立一个新网站,是不是还要设计一个页面来实现对新网站数据库增删改查操作,但是这样页面具有一个很大重复性,那有没有一种方法能够让我们很快生成管理数据库表页面呢?...3、注册模型类 登录后台管理后,默认没有我们创建应用定义模型类,需要在自己应用 admin.py 文件中注册,才可以在后台管理中看到,并进行增删改查操作。...增加/修改 目前暂时没有图书信息,列表页中点击"增加"可以进入增加页,Django 会根据模型不同,生成不同表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。...自定义后台管理界面 列表页只显示出了 BookInfo object ,对象其它属性并没有列出来,查看非常不方便。 Django提供自定义管理页面的功能。 比如列表页要显示哪些值。...但发现没有左边还是英文。 我们只要在模型添加一个 Meta 类设置相应属性即可。

1.6K20

ORM常用字段介绍

它包含了你存储数据重要字段和行为。通常,一个模型(model)映射到一个数据库表, 基本情况: 每个模型都是一个Python类,它是django.db.models.Model子类。...模型每个属性都代表一个数据库字段。 综上所述,Django提供一个自动生成数据库访问API 详询官方文档链接。...id字段是自动添加,如果你想要指定自定义主键,只需在其中一个字段中指定 primary_key=True 即可。...(反向查询,我们会这么写: models.Classes.objects.first().student_set.all() 当我们ForeignKey字段添加了参数 related_name...through 使用ManyToManyField字段Django将自动生成一张表来管理多对多关联关系。

2.5K10

Django 2.1.7 模型管理器 models.Manager 以及 元选项

查询数据时候,对于某种固定查询,例如视图之类查询,通用类型查询每次都需要写一遍,有没有一个地方可以将这类通用查询抽象出来,进行模型业务管理呢? 这时候就要看看模型管理器了。...默认情况下Django 每个Django模型添加一个模型管理类Manager对象objects。...将某些固定查询写到模型管理类,避免重复编写。 自定义管理器类主要用于两种情况: 1.修改原始查询,重写all()方法 2.向管理器类添加额外方法,如向数据库插入数据。...1.修改原始查询,重写all()方法。...2.管理器类定义创建对象方法 对模型类对应数据表进行操作,推荐将这些操作数据表方法封装起来,放到模型管理器类

53820

Django 2.1.7 模型管理器 models.Manager 以及 元选项

查询数据时候,对于某种固定查询,例如视图之类查询,通用类型查询每次都需要写一遍,有没有一个地方可以将这类通用查询抽象出来,进行模型业务管理呢? 这时候就要看看模型管理器了。...默认情况下Django 每个Django模型添加一个模型管理类Manager对象objects。...将某些固定查询写到模型管理类,避免重复编写。 自定义管理器类主要用于两种情况: 1.修改原始查询,重写all()方法 2.向管理器类添加额外方法,如向数据库插入数据。...1.修改原始查询,重写all()方法。...2.管理器类定义创建对象方法 对模型类对应数据表进行操作,推荐将这些操作数据表方法封装起来,放到模型管理器类

94240

Admin站点

AppConfig.verbose_name 属性用于设置该应用直观可读名字,此名字Django提供Admin管理站点中会显示, 注册模型类 登录后台管理后,默认没有我们创建应用定义模型类...定义与使用Admin管理类 Django提供Admin站点展示效果可以通过自定义ModelAdmin类来进行控制。...配置 默认情况下Django会将上传图片保存在本地服务器上,需要配置保存路径。...我们可以将上传文件保存在静态文件目录,如我们之前设置static_files目录settings.py 文件添加如下上传保存目录信息 MEDIA_ROOT=os.path.join(BASE_DIR...模型添加imageField字段 我们之前BookInfo模型添加一个ImageFiled class BookInfo(models.Model): ...

2.1K20

Django】 开发:数据库操作和后台管理

return HttpResponse('请查看服务器端控制台获取结果') F对象 一个F对象代表数据库某条记录字段信息 作用: 通常是对数据库字段不获取情况下进行操作 用于类属性...F F('列名') 说明: 一个 F () 对象代表了一个 model 字段值 F 对象通常是对数据库字段不加载到内存情况下直接在数据库服务器端进行操作 示例 1 更新 Book...后台管理登录地址: http://127.0.0.1:8000/admin/ 注册自定义模型类 若要自己定义模型类也能在 后台管理界显示和管理,需要将自己类注册到后台管理界面 添加自己定义模型后台管理数据表...方法进行注册,如: from django.contrib import admin admin.site.register(自定义模型类) 如: bookstore/admin.py 添加如下代码对...from . import models ... admin.site.register(models.Book) # 将Book类注册可管理页面 修改自定义模型展现样式 admin后台管理数据库自定义数据记录都展示

4K40

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

通常不需要直接使用它,如果表没有设置主键Django 将会自动添加一个自增主键。BigAutoField 其实也是一个 BigIntegerField,但它支持 ID 自动增长。...一般而言,文件都是保存在服务器硬盘。因此,该字段在数据库其实是一个字符串类型,默认最大长度100,可以通过max_length参数自定义。...2.1 ForeignKey 1) on_delete Django 2.0 ,设置外键需要添加一个 on_delete选项。外键本身涉及到两个表数据,况且外键在数据库是有约束行为。...默认情况下,这个管理器名字 foo_set,其中 foo 是源模型名字小写。...而没有主动设置,则是 first name: first_name = models.CharField(max_length=30) 对于外键、多对多和一对一字字段,由于第一个参数需要用来指定关联模型

2K30

后端框架学习-Django

一个模型类代表数据库一张数据表 模型一个类属性都代表数据库一个字段 模型是数据交互接口,是表示和操作数据库方法和方式。...verbose_name:设置此字段admin界面上显示名称,可以中文化admin界面 好习惯:字段选项【添加或更改】均要执行 模型类-Meta内部类 使用Meta类来给**模型(其实就是表属性)...) 作用:通常对数据库字段不获取情况下进行操作,用于类属性之间比较 F(‘列名’) 对数据库字段不获取情况下进行操作: 例:需求:将Book表中所有的market_price全部自增...字典 分组聚合 其实是为了实现Having语句 通过计算查询结果一个对象所关联对象集合,从而得出总计值,查询每一项生成聚合 QuerySet.annotate(结果变量名(别名)=聚合函数...模型管理器类 作用:后台管理界面添加便于操作新功能 继承于django.contrib.adminModelAdmin类 应用admin.py定义模型管理器类 class XXXXManager

9.3K40

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

django应用每个模型至少拥有一个 管理器。 管理器类工作方式 执行查询文档阐述,而这篇文档涉及了自定义管理器行为模型选项。...在这种情况下,使用 模型方法 比使用自定义管理器方法要更好。) 自定义管理器 方法可以返回你想要任何数据,而不只是查询。...例如,下面这个自定义 管理器提供一个 with_counts() 方法,它返回所有 OpinionPoll 对象列表,而且列表每个对象都多了一个名为 num_responses属性,这个属性保存一个聚合查询...解决办法就是一个基类添加管理器,然后继承将其放在默认管理器所在基类 之后。...整个这一节,我们将那种由 Django 你创建管理器称之为 “自动管理器”,既有因为没有管理器而被 Django 自动添加默认管理器, 也包括访问关联模型使用临时管理器。

95420

Django 模型自定义Manager和模型方法

1.自定义管理器(Manager) 语句Book.objects.all(),objects是一个特殊属性,通过它来查询数据库,它就是模型一个Manager....这里有两个方法创建自定义manager:添加额外manager;修改manager返回初始Queryset. 添加额外manager 增加额外manager是模块添加表级功能首选办法....Django将会把第一个Manager 定义默认Manager ,Django许多部分(但是不包括admin应用)将会明确地模型使用这个manager。...Model.clean() 应用这个方法来提供自定义模型验证,以及修改模型属性.例如,你可以使用它来给一个字段自动提供值,或者用于多个字段需要一起验证情形: import detetime from...上面的示例,clean()引发ValidationError异常通过一个字符串实例化,所以它将被保存一个特殊错误字典,键NON_FIELD_ERRORS.这个键用于整个模型出现错误而不是一个特定字段穿线错误

2.7K20
领券