Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2009 23:05:03

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

RAW SQL перевести в Django ORM

Здравствуйте.
Есть три таблицы:

CREATE TABLE sklad (
id int(11) NOT NULL auto_increment,
kod int(11) NOT NULL,
naimen varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `kod` (`kod`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

CREATE TABLE tovar (
id int(11) NOT NULL auto_increment,
kod int(11) NOT NULL,
naimen varchar(255) NOT NULL,
kol double NOT NULL,
id_sklad_id int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `kod` (`kod`),
KEY tovar_id_sklad_id` (`id_sklad_id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

CREATE TABLE realise (
id int(11) NOT NULL auto_increment,
mkey_user_id int(11) NOT NULL,
dat date NOT NULL,
id_tovar_id int(11) NOT NULL,
kol double NOT NULL,
coment varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `realise_realise_mkey_user_id` (`mkey_user_id`),
KEY `realise_realise_id_tovar_id` (`id_tovar_id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
Подскажите пожалуйста как перевести в ORM такой запрос:
SELECT realise.dat, tovar.id_sklad_id, tovar.naimen, tovar.kol, realise.kol 
FROM tovar, realise
WHERE tovar.id=realise.id_tovar_id;
Заранее благодарен.



Отредактировано (Янв. 16, 2009 00:37:10)

Офлайн

#2 Янв. 16, 2009 00:18:08

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

RAW SQL перевести в Django ORM

Так описание моделей дадите или нет?:-)



Офлайн

#3 Янв. 16, 2009 00:36:48

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

RAW SQL перевести в Django ORM

Дам :)

class sklad(models.Model):
kod = models.IntegerField(unique=True)
naimen = models.CharField()

class tovar(models.Model):
kod = models.IntegerField(unique=True)
naimen = models.CharField()
kol = models.FloatField()
id_sklad = models.ForeignKey(sklad)

class realise(models.Model):
mkey_user = models.ForeignKey(User)
dat = models.DateField()
id_tovar = models.ForeignKey(tovar)
kol = models.FloatField()
coment = models.CharField()



Офлайн

#4 Янв. 16, 2009 00:49:08

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

RAW SQL перевести в Django ORM

Вот например:

[r.dat, r.id_tovar.id_sklad_id, r.id_tovar.naimen, r.id_tovar.kol, r.kol\
for r in realise.objects.all().select_related("id_tovar")]
Кстати, абсолютно ужасные названия полей и моделей. Никогда так не делайте.



Офлайн

#5 Янв. 16, 2009 11:55:31

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

RAW SQL перевести в Django ORM

Спасибо Daevaorn. Как всегда по существу.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version