I've inherited an application written django 1.11. The old application uses 
raw() with INNER JOIN and GROUP BY. 
 I cannot seem to figure out how to do inner join and group by properly the 
ORM way.

The raw() query is below.

SELECT * FROM items_monolithic
INNER JOIN items_facepng
ON items_monolithic.object == items_facepng.obj
GROUP BY items_monolithic.object
ORDER BY object ASC


Things kind of work with raw() but that doesn't feel right. And I get nasty 
warnings about RawQuerySet not supporting certain things when I try to use 
the query set that is returned.

>From what I understand every monolithic object has 1 or more faces 
(graphic/picture).

I would call the monolithic a one-to-many relationship with facepng but I 
see django calls this a ForeignKey.

I'm working with these models (yes, a field named object is "bad", it's 
what I was given)


class Monolithic(models.Model):
object = models.CharField(max_length=128, blank=False, null=False, unique=
True)

class FacePng(models.Model):
obj = models.CharField(max_length=128, blank=True, null=True)


I do not see the ForeignKey relationship between Monolithic and FacePng. 

Changing Monolithic class to models.ForeignKey() breaks lots of things.

So I'd prefer to figure out how to do the inner join and group by query but 
if that's not the django way and I need to change Monolithic.objects to a 
ForeignKey() and fix all the stuff that is broken I can do that that too. 

Just need some guidance on how to proceed.



-- 
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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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/ab7ecf5b-9ae8-4428-9502-6b7d5dec03b5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to