使一个相当复杂的 Django 模型方法可以在管理中排序?

2024-02-17

我有一个相当复杂的自定义 Django 模型方法。它在管理界面中可见,我现在想让它在管理界面中也可排序。

我已经添加admin_order_field按照推荐在上一个问题中 https://stackoverflow.com/questions/3491766/how-to-add-a-sortable-count-column-to-the-django-admin-of-a-model-with-a-many-to,但我不完全明白我还需要做什么。

class Book(models.Model):
    id = models.IntegerField(primary_key=True)
    title = models.CharField(max_length=200)
    library_id = models.CharField(max_length=200, unique=True)
    def current_owner(self):
        latest_transaction = Transaction.objects.filter(book=self)[:1]
        if latest_transaction:
            if latest_transaction[0].transaction_type==0:
                return latest_transaction[0].user.windows_id
        return None
    current_owner.admin_order_field = 'current_owner'

目前,当我单击管理界面中的 current_owner 字段时,Django 会给我

FieldError at /admin/books/book/
Cannot resolve keyword 'current_owner' into field

我还需要制作一个 BookManager 吗?如果是这样,我应该使用什么代码?这不是像上一个问题中的示例那样的简单计数,因此我们将不胜感激:)

Thanks!


Django 管理员不会根据方法的结果或任何其他不是模型字段(即数据库列)的属性对模型进行排序。排序必须在数据库查询中完成,以保持简单高效。

的目的admin_order_field是将非字段属性的排序等同于字段属性的排序。

例如,有效值current_owner.admin_order_field可能id, title or library_id。显然,这些对您的目的来说都没有意义。

一种解决方案是非规范化并始终存储current_owner作为模型字段Book;这可以使用信号自动完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使一个相当复杂的 Django 模型方法可以在管理中排序? 的相关文章

  • Django:将博客条目查看次数增加一。这有效率吗?

    我的索引视图中有以下代码 latest entry list Entry objects filter is published True order by date published 10 for entry in latest ent
  • Django 表单:时间字段验证

    我觉得我在这里遗漏了一些明显的东西 我有一个 Django 表单 其中包含时间场 http docs djangoproject com en dev ref forms fields timefield在上面 我希望能够允许像 10 30
  • 通过 ManyToManyField = Value 对 django 查询集进行排序

    如果有一些模型 例如 class Tag models Model name models CharField class Thing models Model title models CharField tags models Many
  • 级联的反向等效项是什么?

    我正在编写一个小型音乐数据库 我学习 SQL 已经有很长一段时间了 我一直想尝试一下 Django 但有一件事我无法理解 现在 我的模型仅包含两个类 Album and Song Song有一个外键指向它所属的相册 现在如果我删除它Albu
  • django - 不支持对 JSONField 的查找或不允许在该字段上加入

    我的模型中有一个 Json 字段 class Product models Model detailed stock JSONField load kwargs object pairs hook collections OrderedDi
  • Django 应用程序部署到 Heroku,应用程序错误,

    我正在努力将 Django 1 10 应用程序部署到 Heroku 正如前言 我正在使用 Pycharm 并且一度不得不重命名我的项目 但它在所有地方都进行了重构并更改了名称 所以我希望这与该问题无关 当我将此网站推送到 Heroku 时
  • 部署到 Heroku 时找不到“site”模块

    我正在尝试将 django 应用程序部署到 Heroku 但我不断收到错误 ImportError no module named site 我正在使用来自的自定义构建包https github com jiaaro heroku buil
  • 从 Django 1.11 升级到 Django 2.1 后 request.POST 为空

    这篇文章是上一个问题的后续 Django request POST 空 https stackoverflow com questions 53227767 django request post empty 我有一个使用 Python 3
  • 如何自定义 django 管理更改页面以返回到“保存”时的特定 URL

    我想使用 django contrib admin 页面来编辑我的模型 但从我自己的视图中调用单独的更改页面 然后在用户单击 保存 后返回那里 理想情况下 这应该通过将返回 URL 附加到管理页面的 url 来实现 如 return url
  • 在 django 中进行单元测试时出现“auth_user 不存在”

    我已经尝试解决这个错误一周了 但我似乎不知道如何解决这个错误 使用这个存储库的其他人都没有遇到与我相同的问题 我是最新的源 所以它必须是某种本地问题 但我不知道它会是什么 每次我尝试运行我们编写的 django 单元测试时都会发生这种情况
  • 嵌套序列化器中的上下文 Django Rest Framework

    如果我有一个嵌套序列化器 class ChildSerializer ModelSerializer class Meta fields c name model Child class ParentSerializer ModelSeri
  • 计算 Django 查询集中的多个字段

    我有一个代表两个用户之间交易的模型 如下所示 class Transaction models Model buyer models ForeignKey Person on delete models SET NULL null True
  • Django 在第二个数据库上调用存储过程

    我试图在多数据库 Django 安装上调用存储过程 但没有获得结果 存储过程 位于辅助数据库上 在 Django 中始终返回一个空数组 但在 mysql 客户端中执行时确实会出现预期结果 My view py文件 从 SomeDBModel
  • 在 Django ORM 中的子查询中返回多个值

    问题是关于Subquery and ArrayAgg在 Django ORM 中 例如 我有 2 个模型 彼此之间没有任何关系 class Example1 models Model ident Integerfield class Exa
  • 如何忽略 Sentry 捕获中的某些 Python 错误

    我已将 Sentry 配置为捕获 Django Celery 应用程序中的所有错误 它工作正常 但我发现一个令人讨厌的用例是当我必须重新启动我的 Celery 工作人员 PostgreSQL 数据库或消息服务器时 这会导致数千种各种 无法访
  • Django 管理中的自定义依赖下拉菜单

    我有一个按阶段模型的项目外键 我很难在 Django 管理页面中创建依赖的下拉列表 我想当用户从该项目的 项目下拉 阶段选择一个项目时 在第二个下拉菜单中显示 实现这一目标的最佳方法是什么 如果下拉列表根据其父级的值来过滤项目 那就太好了
  • 如何在 django admin 中更新 jquery 版本

    如何在 Django 管理中更新 jquery 版本 无需在 django contrib admin media js admin jquery min js 中替换它 到最新的 jquery min js 另外 我不想在我的管理员中使用
  • Django-CMS 插件未出现

    我正在部署 Django 网站 我在计算机上运行的所有自定义插件 我可以从下拉列表中将它们添加到模板块中 但是当我将代码推送到站点时 并非所有插件都可用 数据库表已创建 如果我导入plugin pool并打电话discover plugin
  • 在 Django 中执行模型创建代码

    我想在 Django 模型首次创建时执行一些代码 之后 每当保存它时 我想执行一些其他代码 第二个任务可以通过重写 save 方法轻松完成 我怎样才能完成第一个任务 延伸sdolan https stackoverflow com user
  • Django CSRF 验证失败。请求已中止

    我正在构建这篇 wiki 帖子 当我尝试保存数据时遇到错误 我现在使用的是 django 1 4 3 我使用的教程相当旧 所以我认为旧版本中没有包含 CSRF Forbidden 403 CSRF verification failed R

随机推荐

  • 超时功能

    我想编写一个代码 要求输入用户名 但时间限制为 15 秒 如果用户超出限制并且无法输入名称 或任何字符串 则代码将终止并显示 超时 按摩 否则应保存名称并显示 谢谢 按摩 我曾尝试过这样的操作 但它是错误的并且不起作用 请给我一个解决方案
  • Xt 错误:如果使用默认显示,则无法打开显示

    Overview 我正在尝试让 XQuartz 在 OSX 上工作 这样我就可以通过 Docker 进行 X11 转发 我正在跟进此处的说明 https learning continuous deployment github io do
  • 如何将 Geodjango 与 Google Maps API 3 集成?

    我有一个包含多个字段的 geodjango 查询集 但只想使用user name and location 一个点字段 我想将其用作谷歌地图 API 3 中的标记 请耐心等待 因为我不懂 JavaScript 而且我有一系列问题 将此视为新
  • 复制工作表中的所有内容vba

    Copy wb Sheets wsSource Name Range A1 W79 Copy Paste Special wbTarget Sheets Sheet1 Range A1 W79 PasteSpecial xlValues w
  • 如何从堆栈历史记录中清除特定活动?

    假设我有一个应用程序 其中包含名为 A B C D 的活动 现在 考虑 A 已作为根活动启动 B 已从 A 启动 C 已从 B 启动 D 已从 C 启动 现在我在活动 D 中有一个名为 删除 的按钮 如果假设 我按下活动 D 中的 删除 按
  • 使用 Swift 从 Firebase 存储中检索图像

    我正在寻找从 Firebase 存储检索图像的开始到结束代码示例 只是为了显示图像 作为图像视图或表格 我看过这里的帖子和各种教程 总感觉好像漏掉了什么 如果我能看到全貌 我就能更好地理解这一点 所附代码是我当前尝试将 photo1 从本地
  • 安装VS2008后,在winnt.h中出现编译错误

    我正在尝试将我们的项目从 VS2005 转移到 VS2008 并且在 MFC 项目上遇到此构建错误 C Program Files Microsoft SDKs Windows v6 0A include winnt h 236 error
  • 此插件在本文档中为此 Google 用户帐户创建了太多基于时间的触发器

    我收到标题中的错误 此附加组件在本文档中为此 Google 用户帐户创建了太多基于时间的触发器 当我运行附加组件时 该插件用于创建时间触发器 我在 3 个文档中一起创建了 7 个触发器 现在我无法在任何文档中创建新的触发器 ScriptAp
  • 创建 SOAP 代理?

    我想创建一个 SOAP 代理 它修改原始 Web 服务 SOAP 标头 nampespace 并保持主体相同 做这个的最好方式是什么 创建一个 SOAP 提供程序 使用原始 Web 服务 然后修改标头和名称空间 这看起来工作量很大 如果您的
  • 通过 Javascript 获取图像的平均颜色

    不确定这是否可行 但希望编写一个返回平均值的脚本hex or rgb图像的值 我知道它可以在 AS 中完成 但希望在 JavaScript 中完成 AFAIK 做到这一点的唯一方法是
  • 更改 R 中 onRender() htmlWidgets 散点图中的线条粗细和不透明度

    我希望使用 R 包 htmlwidgets 的 onRender 函数绘制一个图 其中用户可以单击一个点并绘制一条线 我现在工作的关键是 以默认的粗细和默认的不透明度绘制一条灰线 然而 我一直坚持改变线条的粗细 并且可能改变线条的不透明度
  • 将 SpringBoot Api 部署到 IIS Web 服务器

    我使用 gradle build 创建了 spring boot api 在我当地一切正常 我在 IIS Web 服务器的 Sites DefaultsTest 中部署了角度应用程序 它运行在https example app com ap
  • 物体可以自我毁灭吗?

    我有一个需要自我毁灭的物体 能做到吗 例子有错吗 void Pawn specialMoves Coordinate const from Coordinate const to int passant m board gt replace
  • 从递归函数返回多个值

    我遇到这个问题 我必须将十进制数转换为二进制 然后将这些位存储在链表中 其中头节点是最高有效位 最后一个节点是最低有效位 解决问题本身其实很简单 只需不断递归地对 2 取模 并将结果添加到列表中 直到十进制数变为 0 即可 我陷入困境的是
  • 用于查找素数的 Haskell 列表理解

    我试图找到所有小于某个整数的素数n使用列表理解尽可能简洁 我正在学习 Haskell 这只是一个练习 我想写一些类似的东西 isqrt Integral a gt a gt a isqrt floor sqrt fromIntegral p
  • 如何比较我的变量是否在 shell 脚本中包含换行符

    我有一个脚本 其中有一行将获取的第三行放入我的变量中 如下所示 variable sed n 3 p home nmsadm abc txt So variable保存这个值 它位于 abc txt 的第三行 就我而言 将是单字线或空 空白
  • 使用BeautifulSoup提取两个节点之间的兄弟节点

    我有一个这样的文档 p class top I don t want this p p I want this p table table img p and all that stuff too p p class p
  • Spring Boot 中的多个数据源和架构创建

    我正在使用 Spring Boot 我终于设法设置了两个数据源 但现在我面临另一个问题 有两个数据源spring jpa hibernate ddl auto create似乎在我的 Spring Boot 应用程序中停止工作 仅sprin
  • 未找到 ID 为“android”的插件(Android Studio)

    我最近刚刚切换到 Android Studio 0 6 1 进行应用程序开发 并且遇到了 gradle 问题 I get Error 1 0 Plugin with id android not found 我很新 所以任何帮助将不胜感激
  • 使一个相当复杂的 Django 模型方法可以在管理中排序?

    我有一个相当复杂的自定义 Django 模型方法 它在管理界面中可见 我现在想让它在管理界面中也可排序 我已经添加admin order field按照推荐在上一个问题中 https stackoverflow com questions