产生背景 当 ForeignKey 数据过多,手动在后台添加时不方便找到自己的想要数据,遂想要一个可以搜索检索数据功能。...检索文档 https://stackoverflow.com/questions/30214469/in-django-admin-how-to-add-filter-or-search-for-foreign-key-select-box.../50356922 With this you can use the autocomplete_fields on a foreignkey field on your source admin class...list_per_page = 20 # 每页数量 readonly_fields = ["start_time"] autocomplete_fields = ["anchor"] # 带有搜索框的外键选择框...配置后效果 注意事项 被搜索的字段需要在其对应对的模型的 admin 中加入到 search_field
何为软删除 当你想对数据进行删除的时候,如果使用物理删除,那么数据真的消失了。使用软删除,可以让数据保留,但是不会被真的删除。只是在字段上设置了一个值,表示数据已经被删除。...需要解决的问题 DRF 暴露DELETE方法一旦被执行,就需要操作软删除,把is_deleted字段设置为True。...简而言之: drf找不到删除的数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django的模型(Model)中操作数据库的能力...也就是如:Book.objects.all()中的objects。有没有想过它到底是什么? 显然,默认的模型Manager并不能解决我们的问题,所以我们需要自定义模型的Manager。...@admin.register(Book) class BookAdmin(admin.ModelAdmin): pass 这是原来的模型注册,笔者进入admin.ModelAdmin中翻阅源码
有三个参数, 其中第一个是 必需的: FilePathField.path 必填。这个FilePathField 应该得到其选择的目录的绝对文件系统路径。...可选的.True 或 False.默认是True.声明是否包含指定位置的文件。...FilePathField实例被创建在您的数据库为varchar列默认最大长度为 100 个字符。作为与其他字段,您可以更改使用的max_length最大长度。...所以在Django中,我这样定义主要字段: title = models.CharField(max_length = 120) img = models.ImageField(upload_to...因为考虑到Admin中上传的是大图,而缩略图不是上传,而是自动生成的。所以在这样写。
---- FileField 字符串(储存文件路径),Django Admin以及ModelForm中提供读取文件夹下文件的功能 关系字段 ---- ForeignKey ...外键类型在ORM中用来表示外键关联关系,一般把ForeignKey字段设置在 '一对多'中'多'的一方。 ...---- on_delete 当删除关联表中的数据时,当前表与其关联的行的行为。...models.SET_NULL 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值...默认为True。 ---- through 在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。
关系字段 ForeignKey 外键类型在ORM中用来表示外键关联关系,一般把ForeignKey字段设置在 '一对多'中'多'的一方。...on_delete 当删除关联表中的数据时,当前表与其关联的行的行为。...models.SET_NULL 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值...ManyToManyField 用于表示多对多的关联关系。在数据库中通过第三张表来建立关联关系。 字段参数 to 设置要关联的表 related_name 同ForeignKey字段。...related_query_name 同ForeignKey字段。 symmetrical 仅用于多对多自关联时,指定内部是否创建反向操作的字段。默认为True。
某位兄弟问了一个问题,“SQL server中怎么删除带默认值的字段”? 这是什么意思?...我们知道,在Oracle中,不管你带不带默认值,删除字段就是alter table ... drop column ...,为什么到了SQL Server,有其他的讲究?...原来这个SQL Server的字段,不是普通定义的表字段,而是通过这几个操作定义的。 1. ...绑定这个类型的默认值是刚才创建的chardt, 绑定这个类型的默认值是chardft exec sp_bindefault chardt, dtkind 创建表的时候,列c定义为dtkind类型,删除这个列...每个功能,都会有他的设计和用意,这就需要我们在用的过程中,深深体会了。
FilePathField Select 一种 CharField ,限定只能在文件系统中的特定目录里选择文件。...help_text: 字段的提示信息 choices:显示选择框的内容,用不变动的数据放在内存中以避免跨表操作 verbose_name: 显示的字段名称 error_messages:自定义错误信息...to_field=None # 要关联的表中的字段名称 on_delete=None # 当删除关联表中的数据时,当前表与其关联的行的行为...(前提FK字段需要设为可空) - models.SET_DEFAULT 删除关联数据,与之关联的值设为默认值(前提FK字段设置默认值)...to_field=None # 要关联的表中的字段名称 on_delete=None # 当删除关联表中的数据时,当前表与其关联的行的行为 五、管理员登陆 为了能让大家提前看到
Django 系列博客(十三) 前言 本篇博客介绍 Django 中的常用字段和参数。 ORM 字段 AutoField int 自增列,必须填入参数 primary_key=True。...数据库中字段的默认值 primary_key 数据库中字段是否为主键 db_index 数据库中字段是否可以建立索引 unique 数据库中字段是否可以建立唯一索引...数据库中字段【年】部分是否可以建立唯一索引 verbose_name Admin中显示的字段名称 blank Admin中是否允许用户输入为空 editable...Admin中是否可以编辑 help_text Admin中该字段的提示信息 choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作...on_delete 级联删除选项 ManyToManyField 用于表示多对多的关联关系。在数据库中通过第三张表来建立关联关系。
unique:如果设置为unique=True 则该字段在此表中必须是唯一的 。 db_index:如果db_index=True 则代表着为此字段设置索引。 default:为该字段设置默认值。...关系字段 ForeignKey 外键类型在ORM中用来表示外键关联关系,一般把ForeignKey字段设置在 '一对多'中'多'的一方。 ...ProtectedError models.SET_NULL 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAULT 删除关联数据,与之关联的值设置为默认值...(前提FK字段需要设置默认值) models.SET 删除关联数据, a....默认值为True,这个选项为True时Django可以对数据库表进行 migrate或migrations、删除等操作。
django中配置mysql数据库 查询queryset时如果需要选取查询集中的某个子集的字段时, 应该用切片,或者first 选择某个子集对象,这样才能够使用到 子集的字段,直接queryset后选择字段会直接报错...blank 为True时,admin中可以为空。但是不限制数据库,要想限制数据库里,需要设置null。 choices 选择框。... 默认都可以修改,如果为false,admin上面不可修改且不显示,但是数据库可以改 error_messages 自定义错误信息,是字典类型 help_text 该字段的提示信息 unique...:通过admin页面对数据进行增删改查 1,创建admin用户名密码 >python manage.py createsuperuser 2,在应用下admin.py中引入自身的models模块(或里面的类...删除学校,会把对应的学生也给删掉, 因为 on_delete= CASCADE。会删除包含foreignKey的学生对象。
db_column 数据库中字段的列名 db_tablespace default 数据库中字段的默认值 primary_key...数据库中字段【年】部分是否可以建立唯一索引 verbose_name Admin中显示的字段名称 blank Admin中是否允许用户输入为空...Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作 如:gf = models.IntegerField(choices=[(0, '...Django Admin中的错误信息会优先根据Admiin内部的ModelForm错误信息提示,如果都成功,才来检查Model的字段并显示指定错误信息 b....,删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值) - models.SET,删除关联数据,
对应app目录下的models.py 1、生成一个简单的数据库表: 在未指定primary_key的情况下,Django会默认创建一个id自增字段作为主键。...db_column 数据库中字段的列名 default 数据库中字段的默认值 primary_key 数据库中字段是否为主键 db_index...Admin中显示的字段名称 blank Admin中是否允许用户输入为空 editable Admin中是否可以编辑 help_text...Admin中该字段的提示信息 choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作 如:gf = models.IntegerField...only() 只加载指定的字段 using() 选择数据库 select_for_update() 锁住选择的对象,直到事务结束。
Django模型 Django的模型定义在models.py文件中。模型是MVT中的M,也相当于MVC中的M。 在Django中,模型必须继承自Model类。...默认创建的主键列属性为id,也可以使用pk,意为primary key. 字段名称中不能出现双下划线,因为这是Django的查询语法之一。...,确保是有效的图片 下面是字段类型中的参数 字段类型的参数 参数 说明 null 如果为True,表示允许为空,默认值是False blank 如果为True,则该字段允许为空白,默认值是False...它的常用值可以如下: CASCADE级联,删除主表数据时连通一起删除外键表中数据 PROTECT保护,通过抛出ProtectedError异常,来阻止删除主表中被外键应用的数据 SET_NULL设置为NULL...这是因为Django会默认指定另外一张表的id作为关联字段。如下图所示: 可以看到peopleinfo这张表中的外键名称是book_id
ORM简介 对象关系映射(Object Relation Mapping)实现了关系和数据库之间的映射,隐藏了关系数据访问的细节,不需要再编写SQL语句 创建模型 在models.py的文件中创建类 继承...OK Django默认采用sqlite3数据库,最终会生成如下数据表,其中自定义的表命名规则是(应用名称模型类名) DATABASES = { 'default...# 删除关联表中的数据时,当前表与其关联的field的行为 on_delete=models.CASCADE, # 删除关联数据,与之关联也删除 on_delete=models.DO_NOTHING...(前提FK字段需要设置为可空,一对一同理) # models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值') on_delete...=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理) on_delete=models.SET, # 删除关联数据
在app/models.py中定义模型 from django.db import models # 定义模型类 class Title(models.Model): # 定义模型字段...中注册 from .models import * from django.contrib import admin # 注册Title到后台 @admin.register(Title) class...(Title, on_delete=models.CASCADE) on_delete选项:当删除关联表中的数据时,当前表与其关联的行的行为。...models.PROTECT # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_NULL # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值...) models.SET_DEFAULT # 删除关联数据,与之关联的值设为指定值 models.SET # 是否在数据库中创建外键约束,默认为True。
在django的开发中,很多时候我们希望app在admin中显示成我们想要的中文名,而不是显示默认的app_label名称。...'blog' 我们可以在通过设置 verbose_name 字段,来指定app在后台显示的名称。...在导入app时,django会检查每个在INSTALLED_APPS中的app的default_app_config变量,如果没有设置,django会使用基类AppConfig,因此我们只需要在init.py...所在的路径填写 通过以上两步,即可实现自定义app在admin中的显示名称。...经过以上步骤的操作,在自带的admin 和 xadmin 中都能显示出来 ? 自带的admin中的显示效果 ?
本文围绕如何使用Django模型方便地将数据存储在数据库中展开。此外,我们可以使用Django的管理面板来创建,更新,删除或检索模型的字段以及各种类似的操作。...= models.CharField(max_length = 200) description = models.TextField() Django将Django模型中定义的字段映射到数据库的表字段中...要删除单个对象,我们需要编写以下命令: >>> a = Album.objects.get(id = 2) >>> a.delete() 验证模型中的字段 Django模型中的内置字段验证是所有Django...字段预定义的默认验证。...关系字段 Django还定义了一组表示关系的字段 FIELD NAME DESCRIPTION ForeignKey A many-to-one relationship.
课程列表页可以对不同字段进行排序。选择多条记录进行删除操作。 课程列表页:过滤器->选择字段范围等,搜索,导出csv,xml,json。 课程新增页面上传图片,富文本的编辑。...由于django在运行某个app的html时会默认查找这个app下的’static‘目录,所以在app之外的static需要我们自己配置。...用于table中某个字段时,在admin后台会显示verbose_name,用于Meta中时,显示的是当前数据表的名称。...5、choices用于选择框,在使用前应该在class中定义一个可迭代对象,[(A, B), (A, B) ...]...另外,右击某张表,选择View/All Rows可以查看当前表的字段和数据信息。
告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库 在项目/__init__.py文件中,写下面两句: import pymysql # 告诉...Django用pymysql来代替默认的MySQLdb pymysql.install_as_MySQLdb() 4....ForeignKey --> 外键 ForeignKey 字段的参数; a.to --> 设置要关联的表; b.to_field -->设置要关联的表的字段 ...2. default 该字段为默认值 3. unique 如果设置为unique=True 则该字段在此表中必须是唯一的 。...books = models.ManyToManyField(to="Book") 在数据库中: 是通过第三张表建立的关系(默认第三张表名 为字段_另一个多对多的字段) # 书 class
import admin from django.forms import widgets from apps.blog.models import * from apps.blog.forms import...ArticleAdminForm from django.contrib.admin import SimpleListFilter from django.utils.html import format_html...resources.ModelResource): # 外键可视化导出 user = fields.Field( column_name='user', # user 在本模型外键的字段名称...attribute='user', # username 外键的里面的字段名 widget=ForeignKeyWidget(User, 'username...field的column_name为字段的名称,这里修改为字段的verbose_name def get_export_fields(self): fields = self.get_fields
领取专属 10元无门槛券
手把手带您无忧上云