Еще одна для ленивых, эта функция возвращает текущее время в наносекундах, используя CLOCK_MONOTONIC
#include <time.h>
#define NANOS_IN_SECOND 1000000000
static long currentTimeInNanos() {
struct timespec res;
clock_gettime(CLOCK_MONOTONIC, &res);
return (res.tv_sec * NANOS_IN_SECOND) + res.tv_nsec;
}
Я не знаю наверняка, что это решит вашу проблему, но я предлагаю протестировать ваш код на последней версии транкового кода Django. Получите это с помощью:
svn co http://code.djangoproject.com/svn/django/trunk/
Со времени выпуска 1.02 было внесено несколько исправлений в unique_topting, например, см. ticket 9493 .
Уникальные вместе должны быть кортежем кортежей
unique_together = (("parent", "name"),)
У вас может быть другая форма, независимо от того, создаете вы или обновляете.
Используйте экземпляр kwarg при создании экземпляра формы.
if slug:
instance = MyTest.object.get( slug=slug )
form = MyUpdateTestForm( instance=instance )
else:
form = MyTestForm()
Для второй части, я думаю, вы можете ввести commit = False, что-то вроде :
if form.is_valid():
inst = form.save( commit=False )
inst.slug = inst.make_slug()
inst.save()