Уведомления

Группа в Telegram: @pythonsu

#1 Июль 9, 2009 10:37:22

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Опции модели для MySQL

Daevaorn
Это правила транслирования DSL нотации на питоне в DDL базы данных. Но в любом случае, вы всегда можете указать явно как название конкретного поля - http://docs.djangoproject.com/en/dev/re … db-column, так и таблицы - http://docs.djangoproject.com/en/dev/re … #db-table.
Я так понимаю, эти правила отключить или изменить в одном месте нельзя? О неудобстве тавтологии с именами уже названных полей и таблиц я уже писал выше.

За ссылки спасибо. Помогают.



Отредактировано (Июль 9, 2009 10:38:56)

Офлайн

#2 Июль 9, 2009 14:56:43

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Опции модели для MySQL

Daevaorn
Напишите свое поле.
Создал свое поле:
class AutoPositiveIntegerField(models.Field):
def __init__(self, *args, **kwargs):
super(AutoPositiveIntegerField, self).__init__(*args, **kwargs)
def db_type(self):
return ‘integer unsigned AUTO_INCREMENT’

Применил в качестве PK:
class Item(models.Model):
item_id=AutoPositiveIntegerField(primary_key=True)

Использовал в качестве FK:
class Info(models.Model):
info_id=AutoPositiveIntegerField(primary_key=True)
item_id=models.ForeignKey(Item,db_column='item_id')

Получил следующий результат:
CREATE TABLE `info` (
`info_id` integer unsigned AUTO_INCREMENT NOT NULL PRIMARY KEY,
`item_id` integer unsigned AUTO_INCREMENT NOT NULL
);

Что я не так делаю? :(



Офлайн

#3 Июль 9, 2009 15:20:25

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Опции модели для MySQL

Nick2009
Что я не так делаю? sad
А вы чего хотели?

PS: пользуйтесь тегом



Офлайн

#4 Июль 9, 2009 16:12:49

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Опции модели для MySQL

Daevaorn
А вы чего хотели?
Понятно чего. Как PK сделать UNSIGNED и AUTO_INCREMENT и при этом чтобы нормально определялись FK?



Офлайн

#5 Июль 16, 2009 15:02:13

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Опции модели для MySQL

Nick2009
Daevaorn
http://docs.djangoproject.com/en/dev/ref/settings/#database-options
И где там об этом?
CREATE TABLE static(...) TYPE=MYISAM ROW_FORMAT=fixed;
CREATE TABLE dinamic(...) TYPE=InnoDB ROW_FORMAT=fixed;
и т.п.
А существует ли вообще какая-нибудь(любая) опция модели, которая выводится между закрывающей скобкой таблицы и точкой с запятой?…



Офлайн

#6 Июль 16, 2009 15:49:27

Nick2009
От:
Зарегистрирован: 2009-06-24
Сообщения: 161
Репутация: +  0  -
Профиль   Отправить e-mail  

Опции модели для MySQL

Daevaorn
Напишите просто комментарии, в которых укажите специфичные настройки для конкретной таблицы модели. Хоть как-то документируете.
Как это сделать? Нужно, чтобы комментарии выводились в код SQL



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version