Вы можете переопределить функции save_model и save_formset.Примеры случаев из моего собственного кода (admin.py):
class SubtaskAdmin(admin.ModelAdmin):
form = SubtaskAdminForm
list_display = ('id', 'task', 'date_created', 'author', 'status', 'is_reclamation')
list_filter = ('date_created', 'status', 'is_reclamation')
actions = [change_subtask_status_to_new, change_subtask_status_to_open, change_subtask_status_to_ready]
fields = ('order', 'task', 'tags', 'amount', 'is_reclamation', 'status')
def save_model(self, request, obj, form, change):
if not change:
employee = Employee.objects.get(id=request.user.id)
obj.author = employee
obj.save()
super(SubtaskAdmin, self).save_model(request, obj, form, change)
...
class MaintenanceOrderLineAdmin(admin.ModelAdmin):
...
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
employee = get_object_or_404(Employee, id=request.user.id)
for instance in instances:
if isinstance(instance, Subtask):
instance.author = employee
instance.save()