title: How to create dynamic method for save in models and save_model in ModelAdmin to get and set current user.
body: <p>how I save the current user in Models without create one method per model? There's a dynamic way to implement this for all scope? Some like this:</p>
  
  <pre><code>class BaseTable(models.Model):
      created_at = models.DateTimeField(auto_now_add=True, editable=False)
      modified_at = models.DateTimeField(auto_now=True, editable=False)
      created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, related_name='%(class)s_createdby', editable=False)
      modified_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT ,related_name='%(class)s_modifiedby', editable=False)
  
      class Meta:
          abstract = True
  </code></pre>
  
  <p>And I extend the new model to <code>BaseTable</code></p>
  
  <pre><code>class Clients(BaseTable):
      first_name = models.CharField(max_length=50,verbose_name='Nome')
      last_name = models.CharField(max_length=50, verbose_name='Sobrenome')
  </code></pre>
  
  <p>My question: everytime I'll need overwrite the <code>save()</code> method in all models: <code>Clients, Invoices, Checkout</code> to set the current user in <code>ModelAdmin</code> or there other way to simplify this proccess?</p>
  
  <p>I'm using:</p>
  
  <p><strong>admin.py</strong></p>
  
  <pre><code>@admin.register(Clients)
  class ClientsAdmin(admin.ModelAdmin):
      model = Clients
  
      def save_model(self, request, obj, form, change):
          obj.created_by = request.user
          obj.modified_by = request.user
          super().save_model(request, obj, form, change)
  </code></pre>
  
  <p>It's works. But If a had 20 models? I need overwrite one by one all save_model method? Nothing more dynamic?</p>