В администраторе django, используя django 1.2, я пытаюсь добавить InlineModelAdmin, чтобы применить комментарий к сохранению при внесении изменений в запись.(Ожидается, что запись будет иметь «ChangeComment» для каждого редактирования).
Я не хочу показывать предыдущие записи, поэтому я пытаюсь форсировать набор форм ChangeCommentInline .набор запросов должен быть пустым, путем создания 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, или есть лучший способ справиться с этим?