- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设您有一个模型 Person
,它可以有 N 个 Book
实例。
我想在 django 管理更改 ListView 中显示一个人拥有的书籍数量。
很容易显示数字(在 PersonAdmin 上写一个自定义方法)。
但我找不到一种方法可以根据一个人拥有的书籍数量对其进行排序。
我阅读了 list_display 的文档, 但找不到答案。
根据文档,可以使用查询表达式。是否可以这样解决?
应用答案后,这就是它的样子。在这种情况下,每个实例都有 N 个日志条目:
最佳答案
在 annoate()
和 的帮助下覆盖模型管理的 get_queryset()
方法>order_by()
方法。然后,定义一个可调用函数(book_count()) 将值返回到更改列表页面
<b>from django.db.models.aggregates import Count</b>
class PersonAdmin(admin.ModelAdmin):
list_display = (<b>'book_count',</b> 'other_field')
<b>def get_queryset(self, request):
qs = super().get_queryset(request)
qs = qs.annotate(book_count=Count('book')).order_by('-book_count')
return qs
def book_count(self, person_instance):
return person_instance.book_count</b>
ordering
?当我们调用 super()
时,Django 会抛出异常
关于Django 管理员 : list_display() order by count of related object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55916454/
我想通过不同的权限自定义 list_display。例如,super 可以看到“价格”,其他则不能。管理员.py class bookAdmin(admin.ModelAdmin): def
我有 2 个应用程序:Visitors和 Meetings ,通过 ManytoMany 链接 field : 访客/models.py: from django.db import models f
这是 models.py 的片段 class Applicant(models.Model): name = models.CharField(...) email = models.
我在 Django >= 1.6 文档中阅读: "The field names in list_display will also appear as CSS classes in the HTML
models.py 中有一个名为Employees 的类 class Employees(models.Model): employee_id = models.CharField(verbo
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Can “list_display” in a Django ModelAdmin display attr
我想在 Django Admin 的 list_display 中添加“annotation count”字段。 模型.py class Log(models.Model): ...
Closed. This question does not meet Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 Stack Ov
我刚刚开始使用 Django 管理 View ,开始时,我试图做一些非常简单的事情:使用 list_display 显示对象列表中的几个字段,如下所述:https://docs.djangoproje
我尝试在 Django 管理端的列表显示中显示带有换行符的文本。 class MyModelAdmin(admin.ModelAdmin): list_display = ('example'
需要在 admin list_display 中截断文本 在管理模型中有以下内容但仍显示全文。 from django.template.defaultfilters import truncatew
我有两个模型和一个管理模型: class Person(models.Model): firstname = models.CharField(maxlength=50) surnam
我正在尝试在 list_display 上显示 TextField 的前 10 个字符。 可以在管理界面中吗? 最佳答案 您可以定义一个返回字段前 10 个字符的可调用函数,并将其添加到 list_d
如果状态 = 已关闭,则尝试更改背景颜色。 当我尝试下面的代码时,结果以 html 而不是实际颜色显示。 ##Mode.py from django.template.defaultfilters i
我有两个模型: class Person(models.Model): person_name = models.CharField(max_length=255) def __uni
我有以下代码: #models.py class Repair(models.Model): products = models.ManyToManyField(Product) de
我正在尝试使用 Django 的官方教程。特别是 modeladmin list_display: http://docs.djangoproject.com/en/1.2/intro/tutoria
在我的主网站(管理页面之外)中获得 list_display 功能的最简单方法是什么。 我有一组元素我想选择并执行一个 Action 。有什么想法吗? 最佳答案 名为 django-filter 的应
class CDR(models.Model): order = models.ForeignKey(Order) call = models.ForeignKey(Call)
有没有像 get_list_display() 这样的管理模型方法,或者我可以有一些条件来设置不同的 list_display 值? class FooAdmin (model.ModelAdmin)
我是一名优秀的程序员,十分优秀!