Could you look at UpdateView? Maybe we can use it instead of own implementation.