Я не соглашаюсь с Вашей предпосылкой. Когда используется тщательно и правильно, C++ является большим языком, специально для домена как графика в реальном времени, где скорость является существенной.
управление памятью становится легким, если Вы разрабатываете свою систему хорошо и используете stl контейнеры и интеллектуальные указатели.
std::vector::const_iterator it = lotsOfThingys.begin())
станет намного короче, если Вы будете использовать
using namespace std;
typedef vector::const_iterator ThingyConstIter;
, И можно значительно сократить время компиляции путем разбивания систем в довольно автономные модули, при помощи предварительно скомпилированных заголовков, или при помощи идиомы PIMPL.
club_vacancy.user_id не может быть NULL
Похоже на ошибку из вашей базы данных, а не из Django.
Скорее всего, вы добавили null = Истинно
после запуска manage.py syncdb
. Вам необходимо изменить схему базы данных, чтобы разрешить в этом столбце нулевые значения.
Помимо Юга, другой вариант - использовать django evolution для изменения схемы.
http://code.google.com/p/django-evolution/
Установите его перед внесение изменений в БД. Затем запустите
python manage.py evolve --hint --execute
. Убедитесь, что если вы добавляете новое поле, вы разрешаете нули ( null = True
), иначе Evolve выдаст вам сообщение об ошибке.
вам необходимо сбросить таблицу базы данных (так как просто syncdb не обновляет поля, которые уже созданы с null = False)
./ manage.py reset your_app
ИЛИ если есть это некоторые данные, которые вы не хотите терять. Используйте команды SQL для удаления флага NOT NULL