class Foo(models.Model):
    name = models.CharField(max_length=30)


class FooAdminForm(forms.ModelForm):
    calculated = forms.IntegerField()


class Meta:
    model = Foo


class FooAdmin(admin.ModelAdmin):
    form = FooAdminForm

def save_model(self, request, obj, form, change):
    obj.name = 'Foo #%d' % form.cleaned_data['calculated']
obj.save()
admin.site.register(Foo, FooAdmin)
Django: Faking a field in the admin interface?