正如注释中提到的,需要重写中的get_queryset()
方法InlineModelAdmin
。InlineModelAdmin
就像我最初想的那样,没有必要重写新的表单集并将其附加到定义。
这是结果实现:
class ChangeCommentInline(admin.StackedInline):
"""For allowing logged in user to add change comment"""
model = ChangeComment
extra = 1
exclude = ("user", ) # auto-update user field in save_formset method of parent modeladmin.
def get_queryset(self, request):
"""Alter the queryset to return no existing entries"""
# get the existing query set, then empty it.
qs = super(ChangeCommentInline, self).get_queryset(request)
return qs.none()