@V-ampre

В чем причина ошибки в django admin?

Для модели 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': ['Выберите корректный вариант. Вашего варианта нет среди допустимых значений.']}, {}, {}, {}, {}]

Не могу понять из-за чего она вылазиет, и что надо исправить...
  • Вопрос задан
  • 833 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы