В django admin, используя django 1.2, я пытаюсь добавить InlineModelAdmin, чтобы применить комментарий к сохранению при внесении изменений в запись. (Ожидается, что в записи будет "ChangeComment" для каждого редактирования).
Я не хочу показывать предыдущие записи, поэтому я пытаюсь сделать changeCommentInline formet.queryset пустым, создав NoCommentsInlineFormset и назначив набор форм в моей ChangeCommentInline, но все еще возвращает существующие записи.
https://docs.djangoproject.com/en/1.3/topics/forms/modelforms/#changing-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, или есть лучший способ справиться с этим?