django – 你如何在admin list_filter中引用相关模型的字段?

我的模特:

OrderInfo与Print是一对一的,这是一个多对一的绘画,它本身就是一个多对一的俱乐部.

class OrderInfo(models.Model):
    print_ordered = models.OneToOneField(Print, blank=True)

class Print(models.Model):
    painting = models.ForeignKey(Painting)

class Painting(models.Model):
    club = models.ForeignKey(Club)

在我的OrderInfoAdmin中,我希望能够按相关俱乐部排序,但我无法弄清楚这样做的语法.

我试过这个,但它不起作用:

class OrderInfoAdmin(admin.ModelAdmin):
    list_filter = ['print_ordered__painting__club']

任何帮助表示感谢,提前感谢!

最佳答案 list_filter命令用于过滤而不是排序.您需要这里记录的排序命令:
http://docs.djangoproject.com/en/dev/ref/models/options/#ordering.虽然建模Meta命令允许通过外键进行排序,但是从文档中我不清楚. (filter()查询集函数绝对可以:
http://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by-fields)

我发现管理员在深层次模型中有一些限制.例如,您可以在其父页面上内联子模型,但不能内联孙子.此外,默认情况下,list_filter命令仅适用于建模表中的字段.在您的示例中,您无法过滤OrderInfo管理员中的Print字段.

点赞