Как преобразовать необработанный 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, Как я могу преобразовать это?

Вернуться на верх