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

自定义 Django 管理界面的多对多内联模型

问题背景 Django 管理界面,用户可以使用内联模型来管理一对多的关系。但是,当一对多关系是多对多时,Django 提供的默认内联模型可能并不适合。...例如,如果存在一个产品模型和一个发票模型,并且产品和发票之间是多对多的关系,那么发票的管理界面Django 会显示一个表格,其中包含所有产品及其对应的复选框。...这个方法负责返回一个表单集,表单集中的每个表单对应于内联模型的一个对象。 get_formset() 方法,使用 formset_factory() 函数创建表单集。... formset_factory() 函数,指定 model 参数为内联模型的模型类,并指定 fields 参数为内联模型需要显示的字段。...这两个方法分别负责判断用户是否有添加和修改内联模型对象将新的内联模型类添加到 ModelAdmin 类 ModelAdmin 类的 inlines 属性,添加新的内联模型类。

7910

37.Django1.11.6文档

使用commit=False 的另外一个副作用是模型具有多对多关系的时候。 如果模型具有多对多关系而且当你保存表单指定commit=False,Django 不会立即为多对多关系保存表单数据。 ...response_add管理表单提交后,在对象和所有相关实例已创建并保存之后调用。 您可以覆盖它以在对象创建后更改默认行为。...这是在为此内联创建表单传递到inlineformset_factory()的内容。 InlineModelAdmin.classes Django的新功能1.10。...>>> s.get_decoded() {'user_id': 42} 会话保存 默认情况下,Django 只有会话被修改时才会保存会话到数据库 —— 即它的字典的任何值被赋值或删除: #...当设置为TrueDjango 将对每个请求保存会话到数据库。 注意会话的Cookie 只有一个会话被创建或修改后才会发送。

24.3K80
您找到你想要的搜索结果了吗?
是的
没有找到

ubuntu安装Django

模板系统:强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。     注:前后端分离,也可以用Django开发API,完全不用模板系统。...forms.py:表单,用户浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。...settings.py:Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。...使用pip安装Django需要一行命令,如下所示:(我这里安装Django的时候出错了,是pip官方源的问题,修改为豆瓣源: ubuntu修改pip的官方源为豆瓣源 sudo pip3 install...django 如果想升级 pip 可以用(我这里提示pip版本低,需要升级): (sudo) pip install --upgrade pip 安装过程如果出错了,提示为: ?

3.3K20

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

创建新记录:点击模型名称,进入编辑页面,填写字段后点击保存创建新记录。 查看、编辑和删除记录:点击列表的记录,可以查看详细信息并进行编辑或删除操作。...2.5 使用内联模型 内联模型允许父模型的编辑页面中直接编辑相关联的模型。...使用内联模型:父模型的Admin类添加内联模型,如inlines = [RelatedModelInline]。...用户模型:Django提供了一个默认的用户模型,包含用户名、密码和电子邮件等字段。 3.2 用户、组和权限的管理 用户管理Django Admin,可以创建、编辑和删除用户。...链式调用:QuerySet支持链式调用,可以一个语句中执行多个查询操作。 惰性执行:QuerySet是惰性执行的,这意味着它们真正需要数据才会执行查询。

7610

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 。...访问效果 自定义表单 我们可以自定义管理页面,来取代默认的页面。比如上面的 "add" 页面。我们想只显示 name 和 email 部分。...image.png 内联(Inline)显示 上面的 Contact 是 Tag 的外部键,所以有外部参考的关系。 而在默认的页面显示,将两者分离开来,无法体现出两者的从属关系。

93470

Django 3.1 官网学习路线

__str__()方法非常重要,这不仅是为了方便您在处理交互式提示使用,而且因为 Django 的自动生成的管理员中都使用了对象的表示形式。...页面的底部提供了几个选项: 保存-保存更改并返回此类型对象的更改列表页。 保存并继续编辑——保存更改并重新加载此对象的管理页面。 保存并添加另一个——保存更改并为这种类型的对象加载一个新的空白表单。...通常,您需要定制管理表单的外观和工作方式。可以通过注册对象告诉 Django 所需的选项来实现。 通过重新排列编辑表单的字段来了解其工作原理。...“添加选择”表单如下所示: 表单,“Question”字段是一个选择框,包含数据库的每个问题。Django 知道一个外键应该在管理中表示为一个框。我们的例子,目前只存在一个问题。...如果在该窗口中添加一个问题并单击“Save”,Django 会将该问题保存到数据库,并在您正在查看的“add choice”表单动态地将其添加为选中的选项。

8.1K10

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

QueryDict HttpRequest对象,GET和POST属性是django.http的实例。QueryDict类。 QueryDict是一个用户定义的类,类似于字典。...这是Django提供的防止伪装提交请求的功能。POST方法提交的表单必须具有此标签。...HelloWorld目录创建一个search2.py文件,并使用search_post函数处理post请求: from django.http import HttpResponse from django.shortcuts...当客户发送请求,可以将数据附加到请求。通过解析请求,服务器可以从客户端获取数据,并根据URL提供特定服务。...默认页面显示,不能将两者分开以反映其相关性。我们可以使用内联显示将标记附加到联系人的编辑页面。

1.6K20

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

考虑一下Django 的Admin 站点,不同类型的大量数据项需要在一个表单准备好、渲染成HTML、使用一个方便的界面编辑、返回给服务器、验证并清除,然后保存或者向后继续处理。...一个Web 应用,‘表单’可能指HTML 、或者生成它的Django 的Form、或者提交发送的结构化数据、或者这些部分的总和。...实例化、处理和渲染表单 Django 渲染一个对象,我们通常: 视图中获得它(例如,从数据库获取) 将它传递给模板上下文 使用模板变量将它扩展为HTML 标记 模板渲染表单和渲染其它类型的对象几乎一样...当我们实例化表单,我们可以选择让它为空还是预先填充它,例如使用: 来自一个保存后的模型实例的数据(例如用于编辑的管理表单) 我们从其它地方获得的数据 从前面一个HTML 表单提交过来的数据 最后一种情况最令人关注...Django Form 类详解 所有的表单类都作为django.forms.Form 的子类创建,包括你Django 管理站点中遇到的ModelForm。

4.2K20

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

模板引擎: Django 使用模板引擎来生成 HTML,这使得前端和后端的代码分离更加容易。Django 的模板语言允许开发者模板嵌入动态内容。...表单处理: Django 提供了强大的表单处理工具,使得用户输入的验证和处理变得更加简单。这对于开发 Web 表单和处理用户提交的数据非常有用。...使用管理工具 启动开发服务器,然后浏览器访问 http://127.0.0.1:8000/admin/,得到如下界面: 你可以通过命令 python manage.py createsuperuser...比如,我们之前 TestModel 已经创建了模型 Test 。...而在默认的页面显示,将两者分离开来,无法体现出两者的从属关系。我们可以使用内联显示,让 Tag 附加在 Contact 的编辑页面上显示。

19710

Django框架学习(一)

urls.py 是项目的URL配置文件(也就是我们常说的总的地址配置文件) wsgi.py 是项目与WSGI兼容的Web服务器的一个入口 manage.py 是项目管理文件,通过它管理项目 子应用目录说明...Django中使用方法: 1、子应用地址配置定义一个name参数,指明路由的名字 2、总的地址配置里面进行包含的时候,定义一个namespace,一般名字和子应用的名字一样(注意写在include...5、Django配置文件 5.1BASE_DIR BASE_DIRDjango项目的根目录路径,利用它生成一些项目里面的路径 一个文件打印__file__,输入的结果是当前文件的绝对路径 os.path.abspath...Django默认有csrftoken验证,我们按自己需要关掉(setting的MIDDLEWARE第四行) 表单get提交,是提交的查询字符串,post提交的是请求体 6.2.3获取post表单提交的数据...、cookie数据保存在客户端,以key-value存储 2、cookie有过期的时间,默认是关闭浏览器过期 3、cookie基于域名安全的,浏览器访问一个服务器,只会把和跟这个服务器相关的cookie

2.1K20

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

自定义管理表单 通过admin.site.register(Question)注册了Question后,Django可以自动构建一个默认的表单。如果您需要自定义管理表单的外观和功能。...你可以注册通过配置来实现。 现在先来试试重新排序表单上的字段。...点击它,会弹出一个新增Question的表单,类似Question自己的添加表单。填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice的关联外键对象。...配置文件(mysite/settings.py)TEMPLATES添加一个DIRS选项: # mysite/settings.py TEMPLATES = [ { 'BACKEND...}, ] DIRS是加载Django模板检查的文件系统目录列表;它是一个搜索路径。

3.6K60

django:DateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段的使用

创建django的model,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三对象。...这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy,但实际使用很容易出错,下面是一些注意点。...DateTimeField.auto_now 这个参数的默认值为false,设置为true,能够保存该字段,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意的是,设置该参数为true,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django再带的admin管理器,那么该字段admin...editable=False将导致字段不会被呈现在admin,blank=Ture表示允许表单不输入值。

6.8K80

django 学习笔记一

也可以放在 setting 自定义设置要求 设置名称全部是大写 不要使用一个已经存在的设置 global_setting.py 目录并没有此文件,此文件路径 django/conf/global_setting... 此文件为 django 的默认配置文件,如果没有设置 “配置文件路径”,则使用该默认的配置 使用 python manage.py diffsettings 命令可以查看当前设置和默认设置 global_setting...的不同 ---- 官方文档 也说明了其他方法设置 “设置文件的路径” Mac 中有两种方式: # 第一种 export DJANGO_SETTINGS_MODULE=mysite.settings...(Question) ---- 自定义管理表单 更改顺序 得来全不费工夫,只需使用admin.site.register(Question)注册Question模型,Django就能构造一个默认的表单表示...通常,你会想要自定义管理界面中表单的外观和功能。 你可以通过注册对象的时候告知Django一些你想要的选项来完成。 让我们通过对编辑表单上的字段重新排序来看一下它是如何工作的。

1K20

01.前端之HTML

body内常用标签(HTML的重点) 基本标签(块级标签和内联标签) 不加标签的纯文字也是可以body写的加粗斜体下划线删除段落标签<...表单一般用来收集用户的输入信息     表单工作原理:     访问者浏览有表单的网页,可填写必需的信息,然后按某个按钮提交。这些信息通过Internet传送到服务器上。     ...然后我们后端通过提交过来的数据,来做某些事情,该验证的验证,该保存保存      所以记住form表单里面有两个属性:action控制往哪里提交数据、method控制用什么方式提交。       ...注意:       form表单提交数据的时候,必须有个submit按钮   下面这个django的示例,等我学django的时候再说吧: from django.conf.urls import url...)   属性说明: name:表单提交的“键”,注意和id的区别 value:表单提交对应项的值 type="button", "reset", "submit",为按钮上显示的文本年内容 type

1.1K20

Django基础

这套框架是以比利的吉普赛爵士吉他手Django Reinhardt来命名的. Django的主要目标是使得开发复杂的, 数据库驱动的网站变得简单....Django注重组件的重用性和“可插拔性”, 敏捷开发和DRY法则(Don't Repeat Yourself). DjangoPython被普遍使用, 甚至包括配置文件和数据模型....目录介绍 mysite/ ├── manage.py # 管理文件 └── mysite # 项目目录 ├── __init__.py ├── settings.py # 配置...另外,刚开始测试使用的时候可在配置文件暂时禁用csrf中间件,方便表单提交测试。...除了request参数外,还可以传递传递一个带渲染模板文件和一个保存数据的字典参数 将数据填充进模板文件,最后把结果返回给浏览器 redirect 传递一个URL参数,作用是直接跳转到指定URL def

72060

Django管理应用程序的高级配置BookInstance模型的运用【Django

Django管理应用程序 Django管理应用程序可以使用的模型自动构建可用于创建、查看、更新和删除记录的站点区域。这可以开发过程节省大量时间,使测试模型和查看是否有正确的数据变得容易。...Django项目只建议用于内部数据管理(也就是说,仅适用于组织的管理员或内部人员),因为以模型为中心的方法不一定是所有用户的最佳界面,并且暴露了许多关于模型的不必要的细节。...python3 manage.py runserver 高级配置 Django使用注册模型信息创建基本管理站点: 每个模型都有一个单独的记录列表,由__ str__()方法创建并链接到详细视图/表单以进行编辑的字符串...向记录添加相关字段以允许内联编辑(例如,创建作者记录添加添加和编辑书本记录的功能)。...可以我们的图书详细信息添加BookAdmin内容的BookInstance信息。

1.7K20

Django 优秀资源大全项目资源非 Python 包工具贡献

django-object-actions, star:162 - 一个 Django 应用,用于管理界面为数据模型添加对象工具。...兼容性 有助于保存可重用性 app 不同的 Django 版本间保存兼容性的包。 django-compat, star:91 - 为官方支持的 Django 版本提供向前和向后兼容层。...表单 API 和功能与 Django 的完全相同,主要的不同在同它的表单项和表单组件是模板呈现的,而不是使用字符串处理完成,因此它能让你在使用 Django 模板完成控制输出的结果。...django-geoposition, star:261 - 一个数据模型项,可用来保存地理信息(经度/纬度),并提供相应的后台管理/表单组件。...django-calendarium, star:167 - 一个可复用的应用,用于模板管理和显示日历。

14.1K90

Django-form表单

Django 构建一个表单 Form 类 我们已经计划好了我们的 HTML 表单应该呈现的样子。Django ,我们的起始点是这里: ?...当调用这个方法,如果所有的字段都包含合法的数据,它将: 返回True 将表单的数据放到cleaned_data属性。 完整的表单,第一次渲染,看上去将像: ?...这是我们第一个访问该URL 预期发生的情况。 如果表单的提交使用POST 请求,那么视图将再次创建一个表单实例并使用请求的数据填充它:form = NameForm(request.POST)。...注:Django 原生支持一个简单易用的跨站请求伪造的防护。当提交一个启用CSRF 防护的POST 表单,你必须使用上面例子的csrf_token 模板标签。...当渲染给用户,它将为空或包含默认的值。 绑定的表单具有提交的数据,因此可以用来检验数据是否合法。如果渲染一个不合法的绑定的表单,它将包含内联的错误信息,告诉用户如何纠正数据。

3.9K70
领券