Найти - Пользователи
Полная версия: RAW SQL перевести в Django ORM
Начало » Django » RAW SQL перевести в Django ORM
1
securelord
Здравствуйте.
Есть три таблицы:
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;
Заранее благодарен.
Александр Кошелев
Так описание моделей дадите или нет?:-)
securelord
Дам :)

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()
Александр Кошелев
Вот например:
[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")]
Кстати, абсолютно ужасные названия полей и моделей. Никогда так не делайте.
securelord
Спасибо Daevaorn. Как всегда по существу.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB