I can offer the following solution:
- Create author (fk auth.User) and created (datetime auto_now_add=True) fields in your model.
- Override get_form function in model admin class, get the last object created by the current user in it and put the required initial value in the foreign key field
Code examples (not tested, it's just an idea):
# yourapp/models.py
from django.db import models
class ModelOne(models.Model):
pass
class ModelTwo(models.Model):
model_one = models.ForeignKey(ModelOne)
created = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey('auth.User')
# yourapp/admin.py
from django.contrib import admin
from yourapp.models import ModelTwo
@admin.register(ModelTwo)
class ModelTwoAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
form = super(ModelTwoAdmin, self).get_form(request, obj, **kwargs)
if '_addanother' in request.POST:
latest_object = ModelTwo.objects.filter(author=request.user).latest('created')
form.base_fields['model_one'].initial = latest_object.model_one
return form