i did something like this recently using .extra / select https://docs.djangoproject.com/en/1.10/ref/models/querysets/#extra
On Mon, Feb 20, 2017 at 10:49 AM, Larry Martell <[email protected]> wrote: > Is there any way to use both the ORM and raw SQL in the same query? > > I have an existing app that uses the ORM and now I have a need to add > SQL like this to the select: > > (CASE > WHEN TRIM(IFNULL(roiname, '')) IN ('', 'None') THEN CONCAT_WS('.', > roi_type_id, roi_id) > WHEN CONCAT_WS('.', roi_type_id, roi_id) = roiname THEN roiname > ELSE CONCAT_WS('.', roi_type_id, roi_id, roiname) > END) as roiname > > and SQL like this to the where: > > AND (CASE > WHEN TRIM(IFNULL(roiname, '')) IN ('', 'None') THEN CONCAT_WS('.', > roi_type_id, roi_id) > WHEN CONCAT_WS('.', roi_type_id, roi_id) = roiname THEN roiname > ELSE CONCAT_WS('.', roi_type_id, roi_id, roiname) > END) REGEXP 'foo' > > As far as I know I cannot do anything like that with the ORM. I don't > want to have to rewrite everything with raw SQL. Is there a way to mix > them? > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/django-users/CACwCsY46a1-A6zqfZVeUC5r%2B- > xrupii_DJOVJRb%2B5K-Z22ZgGQ%40mail.gmail.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAAuoY6OomVnpcM9TTOx2hAVYTGZSEMcRgNKXiOD8k2JBUerZXA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

