当管理员list_editable
与限制自定义管理器一起使用时,我遇到了一些奇怪的行为。每次尝试保存管理员列表中的更改时,都会收到以下消息:请更正以下错误。Django管理员列表编辑
有关如何摆脱此错误消息的任何建议?
下面是一个最小的例子:
models.py
from django.db import models
class RestrictedManager(models.Manager):
def get_queryset(self):
return super(RestrictedManager, self).get_queryset().none()
class MyModel(models.Model):
on = models.BooleanField()
objects = RestrictedManager()
all_objects = models.Manager()
admin.py
from django.contrib.admin import ModelAdmin, site
from models import MyModel
class MyModelAdmin(ModelAdmin):
list_editable = ('on',)
list_display = ('id', 'on',)
def get_queryset(self, request):
return MyModel.all_objects
site.register(MyModel, MyModelAdmin)
如果你想知道,为什么我用none()
默认查询集, 我不。我仅使用none()
来简化示例。任何由默认管理器过滤掉的对象都会出现问题。
Django似乎不鼓励我的方法。谢谢! – Yossi 2015-05-06 08:05:38