#############################################################
# models.py
#############################################################

from django.contrib.auth.models import User
from django.db import models

class Order(models.Model):
    """ sample model """
    code = models.CharField(max_length=30)
    def __unicode__(self):
        return self.code

class OrderNote(models.Model):
    """ model save registration """
    order = models.ForeignKey(Order)
    insert_user = models.ForeignKey(User)
    insert_date = models.DateTimeField(auto_now=True)
    memo = models.TextField()


#############################################################
# admin.py
#############################################################

from django.contrib import admin
from django import forms
from models import *

class OrderNoteInline(admin.TabularInline):
    model = OrderNote
    readonly_fields = ('memo', 'insert_user', 'insert_date')
    extra = 0
    def has_delete_permission(self, request, obj=None):
        return False
    def has_add_permission(self, request, obj=None):
        return False

class OrderForm(forms.ModelForm):
    memo = forms.CharField(widget=forms.Textarea())

class OrderOption(admin.ModelAdmin):
    form = OrderForm
    raw_id_fields = ('items', )
    inlines = [OrderNoteInline]
    def save_model(self, request, obj, form, change):
        OrderNote(order=obj, insert_user=request.user, memo=form.cleaned_data['memo']).save()
        super(OrderOption, self).save_model(request, obj, form, change)

admin.site.register(Order, OrderOption)