2011-05-27 9 views
7

इस तरह की एक साधारण कक्षा लें।Django: अपने दो क्षेत्रों के बीच अंतर के आधार पर सॉर्ट मॉडल

class MyModel(models.Model): 
    last_updated = models.DateTimeField(auto_now_add=True) 
    last_viewed = models.DateTimeField(auto_now_add=True) 

सभी मैं करना चाहता हूँ तरह उन दो क्षेत्रों के बीच के समय से इस मॉडल पर एक प्रश्न के उत्पादन में है, ताकि चीजें हैं जो बाद से वे शो अपडेट किए गए थे बातें हैं कि तुलना में उच्च ऊपर देखी नहीं किया गया है।

मुझे लगता है कि मुझे तालिका को एनोटेट करने और उस एनोटेशन पर सॉर्ट करने में सक्षम होना चाहिए, लेकिन जब एनोटेशन (या उस मामले के लिए कच्चे एसक्यूएल) की बात आती है तो मैं कोई प्रतिभा नहीं हूं। क्या कोई मुझे सही दिशा में ला सकता है?

MyModel.objects.extra(select={'offset': 'last_viewed - last_updated'}).order_by('offset') 

एक विस्तृत विवरण के लिए docs देखें:

+0

@sdolan समाधान था सब के बाद इसे लेने के लिए पर्याप्त अच्छा है? – Stefano

उत्तर

19

आप कुछ इस तरह कर सकते हैं।

संबंधित मुद्दे