Для модели Post переопределяется менеджер по умолчанию
#models.py
class ObjectsOnManager(models.Manager):
def get_queryset(self):
return super(ObjectsOnManager, self).get_queryset().filter(status='on')
class OnOffStatusModel(models.Model):
ON = 'on'
OFF = 'off'
STATUS_CHOICES = (
(ON, 'Показывать'),
(OFF, 'Не показывать'),
)
status = models.CharField("Статус", max_length=15, choices=STATUS_CHOICES, default=ON)
objects_on = ObjectsOnManager()
objects = models.Manager()
class Meta:
abstract = True
class Post(OnOffStatusModel):
# определяем поля
......
Дальше, чтобы в админке видеть все посты переопределяю метод get_queryset:
#admin.py
class PostAdmin(admin.ModelAdmin):
form = PostImageControlForm
fields = ('count', 'status', 'image', 'title', 'descript', 'body', 'main_post', )
list_display = ('title', 'main_post', 'count',)
list_editable = ('main_post', 'status')
list_filter = ('category', 'main_post', 'status')
def get_queryset(self, request):
return Post.objects.all()
Теперь при редактировании модели со страницы со списком постов (то есть через list_editable)
выскакиевает ошибка валидации форм "Пожалуйста, исправьте ошибку ниже.", при этом никакие поля не подсвечиваются. Покопался в дебаггере в итоге нашел ошибку в формсете во вьюхе changelist_view
[{'id': ['Выберите корректный вариант. Вашего варианта нет среди допустимых значений.']}, {}, {}, {}, {}]
Не могу понять из-за чего она вылазиет, и что надо исправить...