Ограничить набор запросов, отображаемых для администратора django Inline

В django admin, используя django 1.2, я пытаюсь добавить InlineModelAdmin, чтобы применить комментарий при сохранении, когда в запись вносятся изменения. (Ожидается, что запись будет иметь «ChangeComment» для каждого редактирования.)

Я не хочу отображать предыдущие записи, поэтому я пытаюсь принудительно установить formset.queryset ChangeCommentInline пусто, создав NoCommentsInlineFormset и назначив набор форм в моем ChangeCommentInline , но все еще возвращает существующие записи.

https://docs.djangoproject.com/en/1.3/topics /forms / modelforms / # change-the-queryset

Примечание. В приведенной выше ссылке они используют BaseModelFormset , я использую BaseInlineFormset , что, как я полагаю, может быть проблемой. Если я заменяю BaseInlineFormset на BaseModelFormset , я получаю сообщение об отсутствии «экземпляра».

admin.py

class NoCommentsInlineFormset(models.BaseInlineFormset):
    def __init__(self, *args, **kwargs):
        super(NoCommentsInlineFormset, self).__init__(*args, **kwargs)
        self.queryset = ChangeComment.objects.none()


class ChangeCommentInline(admin.StackedInline):
    model = ChangeComment
    extra = 1
    exclude = ("user", )
    formset = NoCommentsInlineFormset

    def save_model(self, request, obj, form, change):
        """auto-assign logined in user to comment"""
        if not change:
            obj.user = request.user
        obj.save()    


class EntryAdmin(admin.ModelAdmin):   
    inlines = (ChangeCommentInline, )

Можно ограничить записи ChangeComment, отображаемые в Inline. , или есть лучший способ справиться с этим?

13
задан monkut 15 July 2011 в 07:25
поделиться