char *recvmsg(){
char *buffer = new char;
cout<<"\nENTER NAME : ";
cin>> buffer;
return buffer;
}
int main(){
char *reply = recvmsg();
cout<<reply;
}
Похоже, что Django 1.3.1 по какой-то причине не применяет свойство ON DELETE CASCADE к таблице. Возможно, это может быть связано с интерфейсом MySQL-python 1.2.3, работающим в Windows. Единственный способ решить эту проблему - через пользовательский SQL .
По умолчанию Django делает каскад. Я не совсем уверен, почему вы получаете ON DELETE RESTRICT. Django 1.3 позволяет вам выбирать альтернативные процедуры ON DELETE (используя on_delete
kwarg при определении поля), и вполне возможно, что если вы унаследовали кодовую базу, кто-то, возможно, сделал это ранее, а затем удалил из кода, но пренебрег ею обновить базу данных.
Я бы предложил изменить столбец вручную, чтобы вернуть его в положение DEL DELETE CASCADE. И просто переходите оттуда. Как я уже сказал, это то, что разработчик должен сказать Django не делать; он каскадом по умолчанию.
Django эмулирует ON DELETE CASCADE в Python - поэтому в таблицах базы данных он не нужен. Фактически, установка RESTRICT может даже иметь смысл, поскольку это означает, что вы не можете случайно удалить любые связанные объекты, не будучи предупрежденными об этом в admin.
В вашем случае кажется, что у вас могут быть иностранные ключевые ограничения, которые Django не знает - или, возможно, вы пытаетесь удалить с помощью raw SQL; Я не могу сказать по вашему вопросу.
Если проблема в том, что вы не можете удалить из администратора или из ORM, вам необходимо убедиться, что ваши модели определены правильно. django позаботится о сборе связанных объектов и выполнении самого каскада.
Если проблема заключается в том, что удаление не работает из необработанного SQL, вам придется либо вручную удалить связанные объекты сначала, либо ослабьте SQL-ограничение - в этом случае изменение его в каскаде может быть правильным решением.