I have a database of articles with a
submitter = models.ForeignKey(User, editable=False)
Where User is imported as follows: <
It's time for a better solution override get_form method
lets say way have this model
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
title = models.CharField(max_length=256)
content = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.title
class PostAdmin(admin.ModelAdmin):
# you should prevent author field to be manipulated
readonly_fields = ['author']
def get_form(self, request, obj=None, **kwargs):
# here insert/fill the current user name or id from request
Post.author = request.user
return super().get_form(request, obj, **kwargs)
def save_model(self, request, obj, form, change):
obj.author = request.user
obj.author_id = request.user.id
obj.last_modified_by = request.user
obj.save()
admin.site.register(Post, PostAdmin)