Я собственно так и делаю, просто я привел участок кода сохранения и валидации.
def admin_katalog_form(request, *args):
from my_admin.forms import KatalogForm
from content.models import Catalog
sign = args[1]
id = request.GET.get('id')
data = {}
template = 'admin_katalog_form.html'
# добавление новой записи
if sign == '_add':
qeryset = {'parent':id}
data['form'] = KatalogForm(qeryset)
# изменение существующей записи
elif sign == '_edit':
queryset = Catalog.objects.get(pk = id)
data['form'] = KatalogForm(instance = queryset)
# валидация и сохранение
if request.method == 'POST':
form = KatalogForm(request.POST)
if form.is_valid():
form.save()
else:
data['form'] = form
data['errors'] = form.errors
return render_to_response(template, RequestContext(request, data))
Не срабатывает блок "валидация и сохранение" именно при редактировании записи, валидация if form.is_valid() ругается на то, что уникальное поле уже есть. (понятно что оно есть, мне ж изменения нужны, а не новая запись). Новая запись добавляется без проблем.