Как преобразовать необработанный sql в Django ORM?
У меня есть две модели wp_8_posts
и wp_8_postmeta
и у меня есть sql запрос, который нужно выполнить на этой модели.
models.py
class Wp_8Post(models.Model):
ID = models.IntegerField(primary_key=True,null=False,default=None)
post_title = models.TextField(null=False,default=None)
post_name = models.CharField(max_length=200,null=False,blank=True)
guid = models.CharField(max_length=255,null=False,blank=True)
post_date = models.DateTimeField(null=False,blank=True)
class Meta:
app_label = 'cms'
db_table = 'wp_8_posts'
class Wp_8Postmeta(models.Model):
meta_id = models.IntegerField(primary_key=True,null=False,default=None)
post_id = models.IntegerField(null=False,default=0)
meta_key = models.CharField(max_length=255,null=True,default=None)
meta_value = models.TextField(null=True,default=None)
class Meta:
app_label = 'cms'
db_table = 'wp_8_postmeta'
sql_query =
"SELECT a.ID, a.post_title, a.post_name, a.post_date, b.meta_value, c.meta_value, f.guid
FROM wp_8_posts a, wp_8_postmeta b, wp_8_postmeta c, wp_8_postmeta d, wp_8_postmeta e, wp_8_posts f
WHERE
a.post_type = 'book' AND
a.ID = b.post_id AND
b.meta_key='book_pub' AND
a.ID = c.post_id AND
c.meta_key='book_url' AND
a.ID = d.post_id AND
d.meta_key='ex_category' AND
d.meta_value LIKE '%"var1"%' AND
a.ID = e.post_id AND
e.meta_key='book_img' AND
e.meta_value = f.ID
ORDER BY a.post_date DESC LIMIT var2;"
var1
и var2
является переменной.
В обеих моделях не определены отношения (внешний ключ и т.д.). Я хочу использовать Django ORM, Как я могу преобразовать это?