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

django admin :如何在多行内嵌中使用smart_selects

Django Admin是Django框架提供的一个强大的管理界面,可以帮助开发者快速构建和管理后台管理系统。而smart_selects是Django的一个插件,可以在多行内嵌中使用,用于实现级联选择功能。

在Django Admin中使用smart_selects,需要进行以下步骤:

  1. 安装smart_selects插件:在项目的虚拟环境中使用pip命令安装smart_selects插件。
  2. 在settings.py中配置smart_selects:在INSTALLED_APPS中添加'smart_selects',并在STATIC_URL后面添加STATICFILES_DIRS配置。
  3. 在models.py中定义模型:在需要使用级联选择的模型中,使用ForeignKey或OneToOneField字段定义关联关系。
  4. 在admin.py中注册模型:在需要使用级联选择的模型对应的admin.py文件中,使用smart_selects的函数进行注册。

下面是一个示例代码,演示如何在多行内嵌中使用smart_selects:

代码语言:txt
复制
# models.py
from django.db import models
from smart_selects.db_fields import ChainedForeignKey

class Country(models.Model):
    name = models.CharField(max_length=100)

class City(models.Model):
    country = models.ForeignKey(Country, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)

class Address(models.Model):
    country = models.ForeignKey(Country, on_delete=models.CASCADE)
    city = ChainedForeignKey(
        City,
        chained_field="country",
        chained_model_field="country",
        show_all=False,
        auto_choose=True,
        sort=True
    )
    street = models.CharField(max_length=100)

# admin.py
from django.contrib import admin
from .models import Country, City, Address

class AddressAdmin(admin.ModelAdmin):
    list_display = ('country', 'city', 'street')
    list_filter = ('country', 'city')

admin.site.register(Country)
admin.site.register(City)
admin.site.register(Address, AddressAdmin)

在上述示例中,Country模型和City模型之间存在一对多的关联关系,Address模型中使用ChainedForeignKey字段实现级联选择,根据选择的国家自动筛选对应的城市。

这样,在Django Admin中,当我们创建或编辑Address对象时,可以在多行内嵌中使用smart_selects实现级联选择的功能。

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

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

何在 Django 同时使用普通视图和 API 视图

在本教程,我们将学习如何在 Django 项目中有效地管理和使用普通视图和 API 视图。我们将从基础概念开始,逐步深入,涵盖必要的配置、代码示例以及最佳实践。1....设置项目和应用首先,创建一个 Django 项目和一个应用(或使用现有的应用)。这里假设我们的项目名为 myproject,应用名为 myapp1。...django-admin startproject myprojectcd myprojectpython manage.py startapp myapp14....我们将使用 Django REST Framework 来简化 API 视图的创建和管理。...确保静态文件加载正常,例如在模板中使用 {% static %} 标签引用静态文件。8. 总结通过本教程,你学习了如何在 Django 项目中同时使用普通视图和 API 视图。

16300

Django 学习笔记 | 1、基础概念和MVT架构

设计模式就是前辈们在开发过程总结出来的经验和套路 MVC是一种设计模式,在这种设计模式下衍生出了MVT Django中文说明文档:https://yiyibooks.cn/xx/django_182..., 负责数据处理, 内嵌了ORM框架 V (视图)全拼为View, 与MVC的C功能相同, 接收HttpRequest, 业务处理,返回HttpResponse T (模板)全拼为Template,...与MVC的V功能相同, 负责封装构造要返回的html, 内嵌了模板引擎 MVT 和 MVC 差异就在于黑箭头标识出来的部分 ?...0x03 Django安装及项目创建 1、安装Django pip install django 2、创建Django项目 以书籍管理系统为例,这里创建的项目名为"book" > django-admin...PyChram打开,在setting.py的第39行下方添加'Book',即将INSTALLED_APPS修改成如下所示: INSTALLED_APPS = [ 'django.contrib.admin

65310
  • python Django 管理站点1.3

    为此,Django会根据定义的模型类完全自动地生成管理模块 使用django的管理 创建一个管理员用户 python manage.py createsuperuser,按提示输入用户名、邮箱、密码 启动服务器...BookInfo的数据进行增删改查操作 问题:如果在str方法返回中文,在修改和添加时会报ascii的错误 解决:在str()方法,将字符串末尾添加“.encode('utf-8')” 自定义管理页面...Django提供了admin.ModelAdmin类 通过定义ModelAdmin的子类,来定义模型在Admin界面的显示方式 class QuestionAdmin(admin.ModelAdmin...(BookInfo, BookInfoAdmin) 可以将内嵌的方式改为表格 class HeroInfoInline(admin.TabularInline) 布尔值的显示 发布性别的显示不是一个直观的结果...= '性别' 在admin注册中使用gender代替hgender class HeroInfoAdmin(admin.ModelAdmin): list_display = ['id', '

    49320

    15款Django开发常用软件包 原

    我们这里整理了15款Django开发中常用的软件包,学会使用它们可以节省大量开发时间,提高开发效率。同时,也给出了它们的pip安装方法。下面一起来看下。  一、认证和授权  1....Python social auth 一款社交账号认证/注册机制,支持Django、Flask、Webpy等在内的多个开发框架,提供了约50多个服务商的授权认证支持,Google、Twitter、...可结合库“python-boto”一起使用,将静态文件存储到Amazon S3上。   pip install django-storages 11....Django Pipeline 静态资源管理应用,支持连接和压缩CSS/Javascript文件、支持CSS和Javascript的多种编译器、内嵌JavaScript模板,可充分允许自定义。  ...Django extensions Django框架的扩展功能集合,包括management命令扩展、数据库字段扩展、admin后台扩展等。

    2.1K20

    Django Admin 后台发布文章

    它所言,我们确实还没有发布任何文章,本节我们将使用 Django 自带的 Admin 后台来发布我们的博客文章。...创建 Admin 后台管理员账户 要想进入Django Admin 后台,首先需要创建一个超级管理员账户。...我们在 让 Django 完成翻译:迁移数据库 已经创建了一个后台账户,但如果你没有按照前面的步骤创建账户的话,可以运行 python manage.py createsuperuser 命令新建一个...如果数据库还没有分类,在选择分类时点击 Category 后面的 + 按钮新增一个分类即可。 image.png 你可能想往文章内容添加图片,但目前来说还做不到。...在支持 Markdown 语法部分中将介绍如何在文章插入图片的方法。

    2K60

    Django 教程 --- Django 基础

    Django提供了现成的组件供您使用。...它是整个应用程序背后的逻辑数据结构,由数据库(通常是关系数据库,MySql、Postgres)表示 视图:视图是用户界面——当你渲染一个网站时,你在浏览器中看到的东西。...django.contrib.messages', 'django.contrib.staticfiles', 'projectApp' ] 因此,我们最终创建了一个应用程序,但是要使用...('', include("projectApp.urls")), ] 现在,您可以使用默认的MVT模型在应用程序创建url、模型、视图等,它们将自动包括在您的主项目中。...Django Apps的主要特点是独立性,每个app都作为一个独立的单元来支持主项目。要了解更多关于Django的应用程序,请访问如何在Django创建应用程序?

    3.6K11

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

    网站管理员使用这个系统来添加新闻、事件、体育成绩等等, 而这些内容会在公共网站上显示出来。Django 解决了为网站管理员创建统一 的管理界面用以编辑内容的问题。 管理界面不是让网站访问者使用的。...这样的话你就需要在注册对象 时告诉 Django 对应的配置。 让我们来看看如何在编辑表单上给字段重新排序。...为此,Django 提供了一个以表格方式显示内嵌有关联对象的方式; 你只需要将 ChoiceInline 声明改为如下所示: class ChoiceInline(admin.TabularInline...) 现在从 Django 源代码自带的默认 Django 管理模板的目录 (django/contrib/admin/templates) 下复制 admin/base_site.html 模板到你正在使用的...答案就是在默认情况下, Django 会自动在每一个应用的包内查找 templates/ 目录,作为备用使用。 (不要忘记 django.contrib.admin 是一个应用)。

    2.5K40

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

    在本文中,我想向您介绍如何在Django使用聚合,聚合的含义是“内容相关项的集合,以便它们可以显示或链接到”。...在Django,我们使用的情况例如: 用于在Django模型的数据库表查找列的“最大值”,“最小值”。 用于基于列在数据库表查找记录的“计数”。 用于查找一组相似对象的“平均值”值。...,打开Myapp下admin.py文件,加入: from django.contrib import admin from .models import Book, Author, Publisher...admin.site.register(Book) admin.site.register(Author) admin.site.register(Publisher) 之后,您需要打开管理面板并将一些项目添加到数据库...Django使用聚合的实现示例的文章就介绍到这了,更多相关Django使用聚合内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    1.7K31

    Django(1)初识Django「建议收藏」

    模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。...Django基于MTV的设计十分优美,其具有以下特点: 对象映射关系(Object Relational Mapping, ORM):通过定义映射类来构建数据模型,将模型与关系数据库连接起来,使用ORM...系统:完善的缓存系统,可支持多种缓存方式 Auth认证系统:提供用户认证、权限设置和用户组功能,功能扩展性强 国际化:内置国际化系统,方便开发出多种语言的网站 Admin后台系统:内置Admin后台管理系统...功能的导入由模块Django.urls实现,from Django.urls import include,path,re_path Admin后台系统:支持主流移动设备并新增属性ModelAdmin.autocomplete_fields...100000 Cache(缓存):cache.set_many()现在返回一个列表,包含插入失败的键值 视图类:ContextMixin,extra_context属性允许在View.as_view()添加上下文

    2.8K20

    Django 学习笔记 | 2、模型

    0x00 模型 当前项目的开发, 都是数据驱动的 使用Django进行数据库开发的提示 : MVT设计模式的Model, 专门负责和数据库交互.对应(models.py) 由于Model内嵌了ORM...框架, 所以不需要直接面向数据库编程 而是定义模型类, 通过模型类和对象完成数据库表的增删改查 ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象 使用Django进行数据库开发的步骤...使用django站点管理模块步骤: 管理界面本地化 创建管理员 注册模型类 自定义站点管理界面 1、管理界面本地化 将语言,时间设置为本地的语言时间,大陆使用的简体中文,时区使用亚洲/上海时区,修改settings.py...运行之后,在浏览器打开 http://127.0.0.1:8000/admin使用刚才创建的用户名密码登陆。...修改admin.py代码 # BookManager/Book/admin.py from django.contrib import admin from Book.models import BookInfo

    62410

    jS正则和WEB框架Django的入门

    /m 表示多行匹配 这里的多行匹配需要注意: 默认情况下js的正则匹配就是多行匹配 通过下面例子理解加上m之后的正则匹配 从例子可以看出只匹配到第一行的内容,第二行的并没有匹配,这里是因为整个text是一个字符串...\Scripts目录下会有:django-admin.exe 下面通过命令创建一个简单的project ango-admin startproject 工程名 jango-admin startproject...js和css都加载成功 获取用户的信息 views.py的代码如下: from django.shortcuts import render from django.shortcuts import...: from django.conf.urls import url from django.contrib import admin from cmdb import views urlpatterns...工程 django-admin startproject 工程名 创建APP cd 工程名 python manage.py startapp cmdb 静态文件 project.settings.py

    2.1K60

    Django教程(一)- Django视图与网址1.简介2.环境搭建3.安装pycharm4.Ubuntu下 正确安装VMware Tools5.Django主要模块6.Django基本命令7. Dj

    BSD协议是“宽容自由软件许可证”的一员,在软件复用上给予了最小限度的限制。 BSD协议允许作者使用该协议下的资源,将其并入私人版本的软件,该软件可使用闭源软件协议发布。...与项目名类似 app name 也需要为合法的 Python 包名, blog,news, aboutus 等都是合法的 app 名称。...把我们新定义的app加到settings.py的INSTALL_APPS 修改 mysite/mysite/settings.py INSTALLED_APPS = ( 'django.contrib.admin...(r'^admin/', admin.site.urls), ] 2.在zhong创建urls.py,编写如下: from django.conf.urls import url from . import...(BookInfo, BookInfoAdmin) 可以将内嵌的方式改为表格 class HeroInfoInline(admin.TabularInline) 布尔值的显示 发布性别的显示不是一个直观的结果

    1.4K20

    django项目中新增app的2种实现方法

    找到跟django项目同名的包下面的settings.py文件的INSTALLED_APPS,然后把要添加的app添加到最后一行,后面加上逗号,至此,我们的app就创建完成了。...补充知识:如何在django下建立多个app django是MTV模式,即template(页面展现),modle(数据库表对象),view(业务逻辑处理),在开发中发现,随着项目功能的增多,把所有的功能模块放在一个...但是当项目中建立多个app,解决同名冲突,需要在templates下再创建一个文件夹,这样就解决假设有两个app中都有main.html页面,到底跳转到哪个页面的问题,在views.py文件页面跳转 render在...html前加上外面的文件夹的名称,这里是cms, :return render(request,’cms/program.html’,{‘authority’:authority,}), 同样在静态文件里面也新建...cms文件夹,静态文件内容放入到cms里面,访问静态文件形式 :<link href=”{% static ‘cms/css/sweetalert.css’%}” rel=”external nofollow

    2.2K10

    Django MVT之T

    Django MVC概述和开发流程已经讲解了Django的MVT开发流程,本文重点对MVT的模板(Template)进行重点讲解。 模板包含两部分: 静态部分: 包含html、css、js。...常用模板标签 注释 单行注释 {# 单行注释内容 #} 多行注释 {% comment %} 多行注释内容1 多行注释内容2 多行注释内容3 {% endcomment %} for循环 {% for...变量与过滤器之间通过管道符号“|”连接,使用格式如下 {{ 模板变量 | 过滤器: 参数}} Django内置过滤器的详细介绍参考Django 1.8.2 中文文档。...(注意:默认情况下,Django已经打开) 但是开启了csrf防御后,请求本站点页面也会返回403错误,解决办法是使用csrf_token标签 <!...urlpatterns = [ url(r'^admin/', include(admin.site.urls)), # namespace='school_test'指定反向解析时的项目名为

    1.2K20

    35.Django2.0文档

    注释使用 {# #} : {# This is a comment #} 如果要实现多行注释,可以使用`` {% comment %}`` 模板标签,就像这样: {% comment %} This is...在你的 Django 应用,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序。 那么,使用order_by()这个方法就可以搞定了。 ?...应用程序`` django.contrib.auth`` 包含自身的`` admin.py`` ,所以Users和Groups能在管理工具自动显示。...其它的django.contrib应用程序,django.contrib.redirects,其它从网上下在的第三方Django应用程序一样,都会自行添加到管理工具。  ...另外一种过滤日期的方式是使用date_hierarchy选项,: class BookAdmin(admin.ModelAdmin): list_display = ('title','publisher

    11.3K100
    领券