Django 管理更改列表 - 限制字段为 NULL 的位置
我正在设置一个新的 Django 应用程序,需要通过限制字段为 NULL 的记录来自定义给定表的管理。基本上是一个内置的永久过滤器。
似乎需要覆盖changelist_view,但我不确定该更改会是什么样子。
没有要包含的代码,因为我现在没有覆盖changelist_view。
I'm setting up a new Django app and need to customize the Admin for a given table by restricting the records where a field is NULL. Basically a built-in, permanent filter.
Seems like changelist_view needs to be overridden, but I'm uncertain what that change would look like.
There's no code to be included as I'm not overriding changelist_view right now.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以覆盖默认管理器,但它有一个缺点,您必须在所有查询中显式指定原始管理器:
You can override default manager, but it has a drawback that you'll have to explicitly specify original manager in all your queries:
目前还没有一个真正好的方法来做到这一点 - 事实上 Django 上有一个开放票证,请求能够自定义用于管理视图的
QuerySet
- 请参阅票证 #10761。 安东尼的解决方案将在短期内发挥作用,但您可能必须等到该票证得到解决才能找到正确的解决方案。There's not really a good way to do this at present - there is in fact an open ticket on Django requesting the ability to customise what
QuerySet
gets used for the admin views - see ticket #10761. Antony's solution will work in the short term, but you may have to wait until that ticket is resolved for a proper solution.我决定使用有限的查询集管理器作为对象。对于 ModelAdmin,我从 django/contrib/admin/options.py 复制了 queryset() ,并通过我的无限查询集管理器更改了 _default_manager 。简单的!
I've decided to use limited queryset manager as objects. For ModelAdmin I've copied queryset() from django/contrib/admin/options.py and changed _default_manager by mine unlimited queryset manager. Simple!