В 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. , или есть лучший способ справиться с этим?