I want to keep track of the user who creates and then updates all of a given model's records. I have the "user" information in the logged in user's UserProfile (all users must be logged in to update these records).
It sounds like you're looking for django-reversion, which allows you to keep track of all changes to a given model, including some meta data about the change (e.g. who made it).
Django models do not (on purpose) have access to the request
object. You must pass it to the model in a view.
The quickest way to set the user field automatically for all changes made in the admin, would be by overriding the save_model
method in your admin class (from the Django docs):
class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.user = request.user
obj.save()
Otherwise, you can use something like django-revision mentioned by Dominic Rodger.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With