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

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

问题背景在 Django 管理界面中,用户可以使用内联模型来管理一对多的关系。但是,当一对多关系是多对多时,Django 提供的默认内联模型可能并不适合。...例如,如果存在一个产品模型和一个发票模型,并且产品和发票之间是多对多的关系,那么在发票的管理界面中,Django 会显示一个表格,其中包含所有产品及其对应的复选框。...下面是一个示例代码,演示了如何自定义多对多内联模型的显示方式:from django.contrib import adminfrom django.contrib.admin.utils import...fields=('product',)) return formset_class # 重写 has_add_permission() 和 has_change_permission...然后,我们在 InvoiceProductFormset 类中重写了 get_formset() 方法、has_add_permission() 方法和 has_change_permission()

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

    Django小技巧22: 设计一个好的模型

    其中有很多与命名约定有关, 这可以大大的提高代码的可读性。 PEP8规范, 广泛用于 Python 领域, 因此我建议你在项目中使用它. 除了 PEP8 , 我更喜欢Django编程风格....本篇目录: 命名你的Model Model定义顺序 反向关系 Blank 和 Null 命名 Model 模型定义使用CapWords约定(没有下划线)....模型最终被翻译成table.该表使用其复数形式命名的. 在 DJango 中,我们可以通过Company.objects来访问集合....Python Company.companies.filter(name='Google') 这样看起来代码就很有可读性了 Model 定义顺序 Django Coding Style 建议内部类,方法和属性的顺序为...大多数开发人员都对基于字符串的字段(CharField和TextField)定义null=True, 这其实是没有必要的, 应该避免这样做,因为 Django约定使用空字符串设置空值, 而非Null.

    89920

    在 Django 表单中传递自定义表单值到视图

    在Django中,我们可以通过表单的初始化参数initial来传递自定义的初始值给表单字段。如果我们想要在视图中设置表单的初始值,可以在视图中创建表单的实例时,传递一个字典给initial参数。...1、问题背景我们遇到了这样一个问题:在使用 Django 表单时,我们希望将自定义表单中的值传递到视图中。然而,我们发现无法为多选选项的每个选项传递值。...我们对 Django 还很陌生,因此希望得到一些解释,以便更好地理解和学习。...views.pystateoption = get_object_or_404(StateOption, pk=stateoption_id)​if request.method == "POST": formset...= StateOptionOutcomeFormSet(request.POST) if formset.is_valid(): for form in formset:

    11710

    一文了解路由平台的 Cisco IOS 和 IOS XE 命名约定,看这篇就够了!

    TOC 概述 命名约定一致性 对某事物进行任何命名约定的全部意义在于使事物保持一致和统一。...遵守约定可为专业人员提供基本规则,让他们坚持已知的内容,为现在和未来的员工以及使用思科产品的人员提供清晰简洁的信息。...本文概述了Cisco 路由平台的 Cisco IOS 命名约定,包括 IOS XE 版本 3S、16 和 17 以及 IOS Classic 版本 15M&T、15S 和 15 特殊和早期部署。...IOS XE 的优势在于为企业、有线和无线接入、聚合、核心和广域接入网络提供单一操作系统的优势。...重建编号通常表示某些错误修复将发生的位置,重建可以有数字约定、字母、小写字母约定,甚至两者的混合。

    1.4K21

    理解Python中的下划线(_)的五种用法

    给变量名或函数名赋予特殊的意义和功能。 用作“国际化(i18n)”或“本地化(l10n)”。 将数字的值分开。 在解释器中使用时 python解释器将最后一个表达式值存储到名为' _ '的特殊变量中。...下划线可能最常用于“命名”。...PEP8是Python的约定准则,它介绍了以下4种命名情况: _single_leading_underscore (首部单下划线) 此约定用于声明模块中的私有变量、函数、方法和类。...也就是说,下划线并不意味着i18n/l10n,它只是将i18n/l10n绑定到下划线变量,这个约定来自C语言约定。...用于i18n/l10n的内置库gettext使用了这种约定,Python web框架Django支持i18n/l10n也引入并使用了这种约定。

    2.3K10

    优雅的代码--PEP8规范

    为了让我们的代码提高可读性,便于后期维护,官方提供了一种规范,这就是PEP8。那么具体的内容是什么呢?下面一起来看看吧。...2.当然还有一些特殊的规则,比如大驼峰和小驼峰命名形式。 3.如果以单下划线开头命名,那么在 frommimport*的时候是不会导入的。 4.有时候你会看到一些以单下划线结尾的名字,不要奇怪。...这是为了和python内部关键词不冲突的一种约定。 5.命名的时候不要使用魔方方法的形式如 __ni__。 6.避免混淆,不要使用有歧义的字符。...如 l(小写的L)和 1多像,还有 O(英文字母)和 0(数字)多像,对吧?你也不想认错。 7.类名首字母请大写。 8.异常命名的时候最后以 Error结尾,让人一下子辨别出来。...Django中数据库的相关操作 DRF框架中的英文单词 DRF框架 Django相关知识点回顾 python技术面试题-腾讯

    83610

    在线网站搭建(七):数据库字段的定义(上)

    下面介绍一个Python的规范,可以让你的代码更具有可读性和维护性。 PEP8规范 (一) 代码的编排 1、 缩进。每行需要4个空格的缩进,不要使用Tap键,更不能混合使用Tap键和空格。...2、 模块命名尽量短小,使用全部小写的方式,可以使用下划线。 3、 包命名尽量短小,使用全部小写的方式,不可以使用下划线。...4、 类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。 5、 异常命名使用CapWords+Error后缀的方式。...7 、函数命名使用全部小写的方式,可以使用下划线。 8 、常量命名使用全部大写的方式,可以使用下划线。 9 、类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。...如果你想获得更多关于PEP8的信息,可以查阅这篇信息PEP8 Python 编码规范整理或者官方文档PEP8的官方文档 至此,我们第七篇:在线教育网站的数据库字段的定义(上)就到此结束了,感谢你的赏阅。

    90120

    接口测试平台代码实现2:本平台项目目录解析

    观看了上一节的基础环境和django概念后,本节就来实际看一下项目的各个文件和代码作用吧,大佬请无视。本节主要是进行大致讲解,具体文件作用之后文章会土话细说。 先来看下整体结构。...所以比较乱,因为是带着很多刚开始学的同事一起做,相当于给大家提供的练手之地,所以难免在很多命名和分层上不是特别合理。但是运行起来和线上项目除了数据不同,其他全是一摸一样。)...首先: Imxiaozhu文件夹: 基本都是django创建时候自动生成的。我们只需要在意一下settings.py和urls.py即可。前者为项目的各种基础设置,后者为路由控制器。...关于命名规范: 习惯于下划线,不太喜欢单/双驼峰。这个不同人有不同感受,自己喜欢就好。 关于pep8: 我觉得不要严格要求代码规范使用pep8,只需要借鉴其中大部分规范即可。...更多精力和关注点应该在功能的完成上,有余下精力再进行美化代码即可。

    36110

    零基础使用Django2.0.1打造在线教育网站(七):数据库字段的定义(上)

    下面介绍一个Python的规范,可以让你的代码更具有可读性和维护性。 PEP8规范 (一) 代码的编排 **1、 缩进**。每行需要4个空格的缩进,不要使用Tap键,更不能混合使用Tap键和空格。...(四)命名的规范 总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。 **1 、**尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。...**2、** 模块命名尽量短小,使用全部小写的方式,可以使用下划线。 **3、** 包命名尽量短小,使用全部小写的方式,不可以使用下划线。...**7 、**函数命名使用全部小写的方式,可以使用下划线。 **8 、**常量命名使用全部大写的方式,可以使用下划线。 **9 、**类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。...如果你想获得更多关于PEP8的信息,可以查阅这篇信息PEP8 Python 编码规范整理或者官方文档PEP8的官方文档 至此,我们第七篇:在线教育网站的数据库字段的定义(上)就到此结束了,感谢你的赏阅。

    92260

    说说Python中PEP8到底是什么?

    如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。 废话不多说,开始今天的题目: 问:说说Python中PEP8到底是什么?...空行 源文件编码 导入 无法忍受的 其它建议 注释块 行内注释 文档字符串 根本原则 描述:命名风格...规定:命名约定 这份PEP8编码规范,内容还是挺多的,我就不再给大家具体列出来了,不过建议大家学习Python还是得认真看看。...接下来给大家提供PEP8英文版和中文版本的链接,大家记得看看哈!...peps/pep-0008/ 翻译中文版本 https://python.freelycode.com/contribution/detail/47 如果对于参考答案有不认同的,大家可以在评论区指出和补充

    44930

    Python 中5种下划线的含义都是什么?

    以下,我们将讨论5种下划线模式和命名约定,以及它们如何影响Python程序的行为: 单前导下划线:_var 单末尾下划线:var_ 双前导下划线:__var 双前导和末尾下划线:__var__ 单下划线...一 单前导下划线:_var 1 说明 当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。 下划线前缀的含义是:以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP8中有定义。...与通配符导入不同,常规导入不受前导单个下划线命名约定的影响: 3 小结 如果遵循PEP8推荐,避免通配符导入,只需要记住: 单个下划线是一个Python命名约定,表示这个名称是供内部使用的。...2 示例 为避免冲突,你可以附加一个下划线来解决命名冲突: 3 小结 总之,单个末尾下划线(后缀)是一个约定,用来避免与Python关键字产生命名冲突。PEP8解释了这个约定。...三 双前导下划线:__var 1 说明 目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。 而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同。

    1.3K40
    领券