Self join with django ORM -


मेरे पास एक मॉडल है:

  वर्ग ट्रेड्स (models.Model): userid = मॉडल पॉजिटिव इटेजरफिल्ड (रिक्त = सच = db_index = true) positionid = models.PositiveIntegerField (db_index = True) tradeid = मॉडल। PositiveIntegerField (db_index = True) orderid = models.PositiveIntegerField (db_index = True) ...  

और मैं अगले क्वेरी निष्पादित करना चाहता हूं:

  ट्रेडों से * चुनें * आंतरिक इन ट्रेडों में टी 2 ऑन टी 2.ट्रैडीड = टी 1। पॉजिटिड और टी 1.ट्रैडीड = टी 2.positionid   

क्या यह हैक के बिना Django ORM का उपयोग किया जा सकता है? Thx!

चुनें * ... अधिक काम करेगा। यदि आप दाहिने हाथ से कॉलम वापस चाहते हैं, तो

  table = SomeModel._meta.db_table join_column_1 = कुछModel._meta.get_field ('field1')। कॉलम join_column_2 = SomeModel._meta .get_field ('field2')। Column join_queryset = someModel.objects.filter () # क्वेरी के बल का मूल्यांकन querystr = join_queryset.query .__ str __ () # जोड़ें promot = true और nullable = बाएं बाहरी जुड़ने के लिए true rh_alias = join_queryset.query .जोड़ें ((तालिका, तालिका, join_column_1, join_column_2)) # दूसरे सशर्त और कॉलम में शामिल करें। Join_queryset = join_queryset.extra (select = dict (rhs_col1 = '% s।% S'% (rhs, join_column_2)), जहां = [ '% S।% S =% s।% S'% (तालिका, शामिल_संचय, rh_alias, join_column_1)])  

चुनिंदा dict के लिए उपलब्ध अतिरिक्त कॉलम जोड़ें।


Comments

Popular posts from this blog

asp.net - Javascript/DOM Why is does my form not support submit()? -

sockets - Delphi: TTcpServer, connection reset when reading -

javascript - Classic ASP "ExecuteGlobal" statement acting differently on two servers -