############################################################# # 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)