【发布时间】:2014-12-07 09:44:15
【问题描述】:
在使用带有限制性自定义管理器的 admin list_editable 时遇到了一些奇怪的行为。每次我尝试在管理员中保存列表更改时,我都会收到以下消息:请更正以下错误。
关于如何摆脱此错误消息的任何建议?
这是一个最小的示例:
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.contrib.admin 中不再有 ModelAdmin。
标签: python django django-forms django-admin